使用express之前有个问题注意一下:有人全局安装了express,在使用require(“express”)时,可还是提示找不着express模块,这里需要在项目的目录下运行 npm link express 即可,因为node_modules 文件夹里没有 express,跟全局没关系,所以需要自己链接一下。
1,首先创建Express项目:express 项目名,你可以在bin目录下面,用命令node www,启动服务器,如果报错,那就执行npm install,自动安装缺少的模块。访问 http://localhost:3000默认的访问地址,就可以见到熟悉的express界面。
2,访问静态页面,在app.js里面,有这么一段代码:
app.use(express.static(path.join(__dirname, 'public')));
它为我们配置好了路径,访问的时候可以直接 http://localhost:3000/images/pp.png,可以直接省略public文件夹,访问到public下面的images下面的pp.png图片。
3,路由
var router = express.Router();//前面已经引入了express模块
router.get('./list',function(req,res){
res.end("list");
});
app.use('/gg',router);//前面已经声明了app的前提下
直接访问http://localhost:3000/gg/list就能访问到路由所指的内容
路由参数:
app.param('newid',function(req,res,next,newid){
req.newid = newid;
next();//后续处理
});
app.get('/news/:newid',function(req,res){
res.end("newid:"+req.newid);
});
直接访问localhost:8081/news/1234,出现预期结果,也可以curl http://localhost:8081/news/1234 后台显示结果。
4,中间件(middleware)
中间件的性质和路由一样,类似于下面这种格式:
function (req, res, next)
第三个是用来驱动中间件调用链的函数next,如果你想让后面的中间件继续处理请求,就需要调用next方法。
给某个路径应用中间件函数的典型调用是这样的:
app.use('/abcd', function (req, res, next) {
console.log(req.baseUrl);
next();
})
和路由极其相似,例子后面再加。