欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

node.js--express框架应用,搭建服务器

程序员文章站 2022-07-01 07:50:57
...

环境要求

$ node.js -v
$ npm -v
//把NPM改成淘宝镜像
$ npm config registry https://registry.npm.taobao.org
//安装express命令管理工具
$ npm install -g express-generator
//安装express框架
$ npm install -g express
//查看版本号
$ express --version
//使用express搭建一个项目
$ express myTest -e
//进入项目目录
$ cd myTest
//安装组件
$ npm install
//启动项目
$ npm start

测试情况

用浏览器访问http://localhost:3000得到结果
node.js--express框架应用,搭建服务器
控制台的结果是

   change directory:
     > cd myTest

   install dependencies:
     > npm install

   run the app:
     > SET DEBUG=mytest:* & npm start


F:\node.js.dev\js20190514>cd myTest

F:\node.js.dev\js20190514\myTest>npm install
npm notice created a lockfile as package-lock.json. You should commit this file.
added 53 packages from 38 contributors and audited 141 packages in 6.405s
found 0 vulnerabilities


F:\node.js.dev\js20190514\myTest>npm start

> aaa@qq.com start F:\node.js.dev\js20190514\myTest
> node ./bin/www

GET / 200 20.460 ms - 207
GET /stylesheets/style.css 200 5.697 ms - 111
GET /favicon.ico 404 11.518 ms - 1023

添加一个路由

app.js中添加

app.use('/myTest',function(req,res){
	res.send('让学习成为一种大学生时尚');
});

重启服务器,再访问URL:http://localhost:3000/myTest
node.js--express框架应用,搭建服务器

使用ejs模板

在view目录下新建如下ejs文件,文件名是myHtml.ejs

<!DOCTYPE html>
<html>
  <head>
    <title>node.js ejs模板应用</title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>
    <h1>node.js ejs模板应用</h1>
    <p>Welcome to node.js ejs模板应用</p>
	<p>寻找一个可以让自己享受安静的地方。</p>
  </body>
</html>

然后添加该路由

app.use('/myHtml',function(req,res){
	res.render('myHtml');
});

启重服务器
然后访问该路由
http://localhost:3000/myHtml
node.js--express框架应用,搭建服务器

获取请求的参数

app.get('/myTest1',function(req,res){
	var getParam = req.query;
	var name = getParam.name;
	var age = getParam.age;
	res.send('获取到的参数是'+name+','+age);
});

访问时,带上参数,用get方式提交
http://localhost:3000/myTest1?name=fhzheng&age=30
node.js--express框架应用,搭建服务器
如果用post方式提交,则

//get方式提交
app.get('/myTest1',function(req,res){
	var getParam = req.query; //得到一个json对象
	var name = getParam.name;
	var age = getParam.age;
	res.send('获取到的参数是'+name+','+age);
});
//post方式提交
app.post('/myTest2',function(req,res){
	var getParam = req.body; //得到一个json对象
	var name = getParam.name;
	var age = getParam.age;
	res.send('获取到的参数是'+name+','+age);
});

测试时有点问题,获取到的数据是undefined以后解决20190514
node.js--express框架应用,搭建服务器

获取参数,并发送到模板进行数据渲染

创建模板

<!DOCTYPE html>
<html>
  <head>
    <title>获取用户名和年龄</title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>
    <h1>获取用户名和年龄</h1>
    <p>我的名字是:<%= name %></p>
	<p>我的年龄是:<%= age %></p>
  </body>
</html>

创建路由

//get方式提交,并将数据渲染到模板上展示
app.get('/myTest3',function(req,res){
	var person = req.query; //得到一个json对象
	var name = person.name;
	var age = person.age;
	//res.send('获取到的参数是'+name+','+age);
	res.render('myData',person);
});

测试结果http://localhost:3000/myTest3?name=郑丰华&age=30

node.js--express框架应用,搭建服务器

路由分离

新建路由

在项目的routes目录下,新建goods.js文件

var express = require('express');
var router = express.Router();

router.get('/',function(req,res,next){
	res.render('myGoods',{title:'Goods',goods:'商城'});
});

module.exports = router;

创建模板

<!DOCTYPE html>
<html>
  <head>
    <title>分离路由后的模板应用</title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>
    <h1>分离路由后的模板应用</h1>
    <p>我的页面是:<%= title %></p>
	<p>我的商品是:<%= goods %></p>
  </body>
</html>

导入路由

在项目的app.js文件中,加入

var goods = require('./routes/goods');
app.use('/goods',goods);

然后,重启服务器,访问结果

node.js--express框架应用,搭建服务器