初始化express项目
- npm init 生成package.json
- npm i express -S 安装express
- 新建index.js
const express = require('express'); const app = express(); app.use(function(req,res){ res.end('hello,node!'); }); app.listen(3000); console.log('server running !');
- nodemon index :nodemon上篇已经全局安装了,所以这次可以直接使用了。
- 打开http://localhost:3000/ 又是熟悉的界面
对比与原生node模块,这部分只是调用方法不太一样,接下来看看express对路由对处理方式有啥不一样。
express的路由分发机制
express为开发者提供了一个十分好用的路由分发的机制,我们不用再自己去提取路由,解析路由啥的了。我们只需要这样:
const express = require('express');
const app = express();
app.get('/',function(req,res){
res.end('index');
})
app.use(function(req,res){
res.end('hello node');
})
app.listen(3000);
console.log('server running !');
代码的逻辑是这样的:
假设用户访问了’/’,我就返回 “index”
假设用户访问其他路径,我就返回 “hello node’”
我们的运行结果是这样的
同样的道理我们能给不一样的路径绑定不一样的处理函数,这样可以节省不少重复代码,也可以更好的组织代码结构。
express的内容协商机制
什么是内容协商,就是客户端与服务器在进行数据交换时,会先商量好格式,再进行传输。一般这个格式是由服务器驱动的。举个例子:
app.get('/',function(req,res){
res.end('中文');
})
这里我把回复的字符串返回成中文了,得到的结果是这样的
因为我们没有在服务端指定好编码格式,才是中文出现了乱码,怎么解决这个问题呢,其实我们加一个字母就可以了😂