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 显示如下:

node.js第二天_html

   2. 使用模板文件

                在项目目录myStuday下的views中新建myHtml.ejs并在文件中写入“桥边歌唱的小姑娘,眼角泛起了泪光”,在app.js中写入

app.get('/myPage',function(req,res){
res.render('myPage');
});

    运行结果:

node.js第二天_node.js_02

如果想将.ejs后缀的文件改为.html文件修改一下代码

//app.set('view engine', 'ejs');  //注释原来的
app.engine('.html',require('ejs').__express); //新增加的
app.set('view engine','html'); //新增加的

关闭命令界面,重启node.js服务。效果图如下

node.js第二天_node.js_02

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);
});

浏览器执行效果

node.js第二天_数据_04

 

路由分离

       由于路由多的情况下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;

运行效果图:

node.js第二天_node.js_05

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