Express:基于node.js的后端框架。介绍javascript
使用步骤: 1.mkdir app
, cd app
2. npm init
3. npm i express -s
4. hello worldcss
var express = require('express');//引入exrpess
var app = express();//建立实例
//路由。当url匹配这里的路由,就交由后面的函数处理
app.get('/', function (req, res) {
res.send('Hello World!');
});
//建立server
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
复制代码
咋看上去跟使用node.js建立一个静态server有点像呢?emm由于express是基于node.js平台。 上面本质上其实就是建立了一个本地server,监听3000端口。server获取的url的后缀,进行路由匹配,而后交给对应的函数进行处理。html
上面的服务器看上去好像很单薄呀,若是我要实现登陆注册等等岂不是要本身写一大堆? Express应用生成器(express-generator)了解一下java
npm i express-generator -s
介绍Usage: express [options] [dir]
express --ejs .
(在当前目录下,建立脚手架,选择模板为.ejs)[图片上传失败...(image-568d2c-1525946563984)] 这时候咱们的目录下新增不少文件,检查一下package.json,发现咱们新依赖了不少东西,先安装好各类依赖。npm i
node
node bin/www
,默认端口是3000,若是你想修改端口的话能够在命令前面指定端口PORT=XXXX
xxx.com/css/style.css
的时候,刚好咱们的public目录下有css文件夹,里面存放着style.css。服务器就会返回这个文件)这里咱们参考一下中文文档express
中间件函数可以访问请求对象 (req)、响应对象 (res) 以及应用程序的请求/响应循环中的下一个中间件函数。下一个中间件函数一般由名为 next 的变量来表示。npm
中间件函数能够执行如下任务:json
若是当前中间件函数没有结束请求/响应循环,那么它必须调用 next(),以将控制权传递给下一个中间件函数。不然,请求将保持挂起状态。后端
next
,这是是中间件的回电函数,若是他带有参数,则表示抛出一个错误,参数为错误的文本,例如:
function Middleware(request, response, next) {
next('出错了!');
}
复制代码
抛出错误之后,后面的中间件将再也不执行,直到发现一个错误处理函数为止。若是没有调用next方法,后面注册的函数也是不会执行的。服务器
咱们在一开始利用express-generator生成框架的时候,输入了ejs
,这个ejs
就是我指定了的模板引擎。经过模板引擎,咱们再也不把html里面的内容写死,而是经过router动态地把数据传给模板引擎,让它根据咱们传入的数据动态地渲染页面,甚至咱们能够经过判断语句来给不一样的登陆状态的用户渲染页面,经过循环语句给页面添加内容等等,上面的router图片中的
res.render('index', {title: 'Express'})
复制代码
就是咱们给模板引擎传给参数,选择index模板,传入一个对象,key为title,value是一个字符串。而后咱们只须要在views
中的index.ejs
里面,使用相应的语法便可动态渲染。