1.使用express框架
安装express框架
安装express框架之前先将npm镜像改为淘宝镜像:
npm config set registry https://registry.npm.taobao.org
npm config set disturl https://npm.taobao.org/dist
首先安装express命令管理工具:
npm install -g express-generator
下一步安装express框架 npm install -g express
安装成功之后就可以使用express创建一个项目: express myStuday -e (myStuday是项目名字,-e是使用ejs模板);
之后cd到myStuday目录,执行npm install (安装组件);
安装完成之后执行npm start 启动项目。
在浏览器中输入http://127.0.0.1:3000或者http://localhost:3000进行测试;当浏览器显示express说明安装成功了。
2.express框架的应用
1.使用简单的路由
app.use('/users', usersRouter);
app.use('/goods',goods);
app.get('/myTest',function(req,res){
res.send('不学习,毋宁死');
});
前两个是配置好的路由,第三个是自己添加的,接下来我们在dos命令行里输入 npm start 启动项目,然后在浏览器中输入http://127.0.0.1/myTest 显示如下:

2. 使用模板文件
在项目目录myStuday下的views中新建myHtml.ejs并在文件中写入“桥边歌唱的小姑娘,眼角泛起了泪光”,在app.js中写入
app.get('/myPage',function(req,res){
res.render('myPage');
});
运行结果:

如果想将.ejs后缀的文件改为.html文件修改一下代码
//app.set('view engine', 'ejs'); //注释原来的
app.engine('.html',require('ejs').__express); //新增加的
app.set('view engine','html'); //新增加的
关闭命令界面,重启node.js服务。效果图如下

3.也可以返回json格式的数据:
app.get('/myTest2',function(req,res){
res.json('学就完了');
});
4.获取请求的数据
// 获取get参数
app.get('/myGet',function(req,res){
var fromData = req.query; // 得到json对象
var name = fromData.name;
var pass = fromData.pass;
});
// 获取post参数
app.post('/myPost',function(req,res){
var fromData = req.body; // 得到json对象
var name = fromData.name;
var pass = fromData.pass;
})
模板数据的渲染
在node.js的模板语法<%= %>叫做ejs模板
<!DOCTYPE html>
<html>
<head>
<title>模板渲染</title>
</head>
<body>
<h3>我的名字是<%= name %></h3>
<h3>我的名字是<%= age %></h3>
</body>
</html>
服务端响应客户端的代码
// 模板数据渲染的路由
app.get('/myData',function(req,res){
var person = {name:'张三',age:22}; // 模拟数据
res.render('myData',person);
});
浏览器执行效果

路由分离
由于路由多的情况下app.js就显得特别乱所以我们采用路由分离,将所有路由放到一个文件中,在app.js中写入
var goods = require('./routes/goods');
app.use('/goods',goods);
//route目录下goods.js中
var express = require('express');
var router = express.Router();
// 请求 /goods 所有响应的路由
router.get('/',function(req,res,next){
// 渲染页面并绑定数据
res.render('goods',{title:'goods',goods:'商城'});
});
module.exports = router;
运行效果图:

下次讲解,ajax与服务器的交互