让我们来创建Express应用程序,Express是一个Node.js Web应用框架,它很强大,可以为用户创建各种Web应用和HTTP工具,使用Express框架可以搭建一个完整功能的网站。
可以用中间件来响应HTTP请求,可以定义路由表用于执行不同的HTTP请求,可以向模板传参数来动态渲染html页面。
命令行安装Express框架:
cnpm install express --save
Express框架安装在node_modules目录中,然后需要一起安装如下模块:
body-parser是node.js的中间件,可以处理JSON,Raw,Text,URL编码的数据,cookie-parser是一个解析Cookie的中间件,然后通过req.cookies可以获取传过来的Cookie,并转为对象。
multer是node.js的中间件,用于处理enctype="multipart/form-data"的表单数据。
cnpm install body-parser --save
cnpm install cookie-parse --save
cnpm install multer --save
让我们来看看express框架的版本号:
cnpm list express
创建第一个Express框架实例
目的为了输出:“hello”,命名:express_demo.js文件
// 引入node模块
const express = require('express');
// 创建express程序
const app = express();
// 添加HTTP路由
app.get('/', function(request, response){
// 输出响应消息
response.send('hello express');
});
// 启动HTTP服务器
app.listen(8080, function(){
console.log('express app');
});
执行项目:
node express_demo.js
然后就可以用http://127.0.0.1:8080
express框架使用request对象和response对象来处理请求和响应的数据:
app.get('/', function(req,res){
})
req.app
为callback,回调函数外部文件,利用req.app访问express的实例
req.baseUrl
获取当前安装的URL路径
req.body/req.cookies
为获得“请求主体”
req.hostname/req.ip
获取主机名,ip地址
req.originalUrl
获取原始请求URL
req.params
获取路由的参数
req.path
获取请求路径
req.protocol
获取协议类型
req.query
获取URL的查询参数
req.route
获取当前匹配的express路由
req.subdomains
获取子域名
req.accepts()
检查可接受请求的文档类型
req.get()
获取指定的HTTP请求头
req.is()
判断请求头Content-Type的Mime类型
res.app
为callback,回调函数外部文件,利用res.app访问express的实例
res.append()
追加指定HTTP请求头
res.set()
在res.append()后重置之前设置的请求头
res.clearCookie()
清除Cookie
res.download()
传送指定路径的文件
res.get()
返回指定的HTTP请求头
res.json()
传送json响应
res.jsonp 传送jsonp响应
res.location() 只设置响应的LocationHTTP请求头,不设置状态码或者close response
res.redirect() 设置响应的LocationHTTP请求头,并且设置状态码302
res.send() 传送HTTP响应
res.status() 设置HTTP状态码
res.type() 设置Content-Type的MIME类型
express路由,由URI,HTTP请求和若干个句柄组成。
// 引入node模块
const express = require('express');
// 创建express程序
const app = express();
// 添加http路由
app.get('/',function(request,response) {
// 输出响应消息
response.send('hello dashucoding');
});
app.get('/users', function(req,res) {
// req , res
res.send('user');
});
// 启动HTTP服务器
app.listen(8080, function(){
console.lo('express app');
});
GET 请求一个指定资源的表示形式,只用于获取数据
POST 用于将尸体提交到指定的资源
HEAD 请求一个与GET相同的响应,但没有响应体
PUT 用于请求有效载荷替换目标资源的所有当前表示
DELETE 删除指定的资源
CONNECT 建立一个由目标资源标识的服务器的隧道
OPTIONS 用于描述目标资源的通信选项
PATCH 用于对资源应用部分修改
app.get('/about',function(req,res){
res.send('about');
});
app.get('/ab?cd',function(req,res){
res.send('ab?cd');
}
app.get('/ab(cd)?e',function(req,res){
res.send('ab(cd)?e');
});
路由句柄,为请求处理提供多个回调函数,next('route')方法
let d1 = function(req,res,next){
console.log('1');
next();
};
let d2 = function(req,res,next){
console.log('2');
next();
});
let d3 = function(req,res,next){
console.log('3');
next();
});
app.get('/', [d1,d2]);
next用于执行下一个回调函数,next('route')用于执行下一个相同路由。
// 引入node模块
const express = require('express');
// 创建express程序
const app = express();
// 添加http路由
app.get('/', function(request, response){
// 输出响应消息
response.send('hello');
});
app.get('/users', function(req,res){
res.send('user');
});
// 动态
app.get('/users/id', function(req,res){
let id = req.params.id;
// 返回响应
res.send('id='+id);
});
// 启动HTTP服务器
app.listen(8080,function(){
console.log('expresss app');
});
const express = require('express');
const app = express();
app.get('/', function(request, response){
response.send('hello');
});
app.get('/users',function(req,res){
res.send('users');
});
app.param('id',(req,res,next)=>{
console.log('hello');
if(req.params.id==='1'){
next();
}else{
res.sendStatus(404);
}
});
app.get('/users/:id',(req,res)=>{
res.send('hello');
});
// 启动服务器
app.listen(8080,function(){
console.log('express');
});
pug视图模板
命令行下载:
npm install pug
pug.compile()将pug代码编译成一个JavaScript函数。
app.js
const express = require('express');
const app = express();
// 配置视图模板
app.set('view engine', 'pug');
app.set('views', './views');
// 添加HTTP路由
app.get('/', function(request, response){
response.render('index.pug');
// 输出响应消息,加载并解析index.pug文件
});
app.get('/users',function(req,res){
res.render('users.pug',{
title:'user',
users:[
{id:1,name:'张三',age:18}
]
});
});
// 启动HTTP服务器
app.listen(8080,function(){
console.log('express');
});
users.pug:
doctype html
html
head
meta(charset="utf-8")
title #{title}
body
#app
for user in users
div
p id=#{user.id}
p name=#{user.name}
p age=#{user.age}
pug.render()模板函数:
const pug = require('pug');
console.log(pug.renderFile('template.pug',{
name:'dada'
});
执行pug.renderFile()函数,会把编译出来的函数自动储存到内部缓存中
前端在调用外部API接口时返回Http是415的请求错误,这是415返回码是由于:服务器无法处理请求附带的媒体格式。通常解决方法有以下3种:1检查你的 http 请求头信息;2查看你的 http 请求方法;3post 请求参数设置
需要启动一个HTTP服务来打开项目。我们可以使用 http-server 或者 web server for chrome 来解决这个问题。有时候,我们还想要外网也能访问我们本地的服务,这时候我们可以使用 ngrok 来解决这个问题。
在激活页面选择License Server,输入:http://idea.codebeta.cn,点击Activate即可激活。操作步骤:点击help→Register→License sever ,输入http://idea.codebeta.cn
网站服务器租用,对于现今很多互联网企业来说,一直都是一项非常不错的选择。但很多企业由于缺乏网站服务器租用技巧及经验,而导致网站在运营过程中出现非常多的问题影响业务发展。
中国领先的互联网基础服务提供商,致力于为全球的金融、电子商务、移动互联网、网络游戏、门户网站等企业提供专业的互联网数据中心(IDC)、云计算(私有云解决方案及公有云云平台)及行业应用的整体解决方案,是一家在业务领域专注和专业的云计算数据中心运营商。
openwebmail提供了可视化的邮件管理系统,它运行在Apache环境下。在官网下载openwebmail,解压,其中cgi-bin是要执行的程序,而data是数据部分。因此在后面我们要改的地方都集中在cgi-bin目录下的openwebmail
网站服务器租用是指租用的服务器主要是用来放置企业网站。那么对于企业网站的服务器该如何选择呢,如何租用呢?价格如何?我来教教大家正确选择租用网站服务器,步骤如下:
服务器指的是一个管理资源并为用户提供服务的计算机软件,通常分为文件服务器、数据库服务器和应用程序服务器。运行以上软件的计算机或计算机系统也被称为服务器。
我们最常说的Web服务器指的是网站服务器,它是建立在Internet之上并且驻留在某种计算机上的程序。Web服务器可以向Web客户端(如浏览器)提供文档或其他服务,只要是遵循HTTP协议而设计的网络应用程序都可以是Web客户端。
最近几年云服务器越来越普及,除了安全性要求特别高的业务之外,很多个人开发者以及企业都会选择购买一台云服务器作为自己的服务器,这样可以省去自己购买服务器的昂贵费用以及服务器机房维护的人员费用。
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!