express—使用总结

参考文档:

  1、express教程及api : http://www.runoob.com/nodejs/nodejs-express-framework.html

  2、express自动生成项目框架-2016 : https://blog.csdn.net/zzwwjjdj1/article/details/51886402 (默认页面模板引擎是jade,想用ejs,使用: express -e xxx)


 

2、设置 静态文件 路径 :  https://blog.csdn.net/qq_34309305/article/details/71552543

var express = require('express');
var app = express();
app.use(express.static('public')); 

3、路由:决定由谁(指定脚本)去响应客户端请求

//  主页输出 "Hello World"
app.get('/', function (req, res) {
   console.log("主页 GET 请求");
   res.send('Hello GET');
})
 
 
//  POST 请求
app.post('/', function (req, res) {
   console.log("主页 POST 请求");
   res.send('Hello POST');
})
 
//  /del_user 页面响应
app.get('/del_user', function (req, res) {
   console.log("/del_user 响应 DELETE 请求");
   res.send('删除页面');
})
 
//  /list_user 页面 GET 请求
app.get('/list_user', function (req, res) {
   console.log("/list_user GET 请求");
   res.send('用户列表页面');
})
 
// 对页面 abcd, abxcd, ab123cd, 等响应 GET 请求
app.get('/ab*cd', function(req, res) {   
   console.log("/ab*cd GET 请求");
   res.send('正则匹配');
})
View Code

 4、创建服务器:

var express = require('express');
var app = express(); 

var server = app.listen(3000, function() { 
    console.log('Express is listening to http://localhost:3000'); 
});

5、express脚手架搭建的框架,使用html的设置(默认jade或ejs): 就是加一句改一句。   https://www.cnblogs.com/Leo_wl/p/4361289.html

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.engine("html",require("ejs").__express); // or   app.engine("html",require("ejs").renderFile);  注:加一句
//app.set("view engine","ejs");   注:改一句
app.set('view engine', 'html');

6、express中,静态文件的相对路径,是以public 文件夹作为相对路径的。https://segmentfault.com/q/1010000008758245 或 https://blog.csdn.net/MPFLY/article/details/78134980

 

 


NodeJS+Express+mySQL服务端开发详解:https://www.cnblogs.com/jj-notes/p/6670310.html  或  https://blog.csdn.net/ppx2017/article/details/80809375(推荐)

1、nodeJS的主流模板----jade和ejs的使用: https://blog.csdn.net/zhanghuiqi205/article/details/78570946

2、express中路由请求的 GET请求 分两种,一种页面的请求(url输入地址)、另一种是ajax请求。

//浏览器url上的请求
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});
// 页面内 ajax 的请求
router.get('/', function(req, res, next) {
  res.send('respond with a resource');
});

3、如果模板页面,不用渲染(服务器解析模板代码)的话,应该是可以直接使用 res.send()进行发送的。

4、express中路由很重要,因为不管是页面进入,还是api接口都是通过路由和前端进行交互的。(可以说 服务器和前端交互的入口就是路由了)

5、vscode调试 express: https://www.cnblogs.com/klsw/p/7765427.html

6、express中获取url上的参数:

router.get('/token', function(req, res, next) {

    var signature = req.query.signature,//微信加密签名
          echostr = req.query.echostr;//随机字符串
    
          res.send(echostr);
});

 


  node+express 后端 架构设计【分层】:

  https://blog.csdn.net/lizhen_software/article/details/82744269  或  https://www.cnblogs.com/ficohu/p/5608996.html  或

  https://blog.csdn.net/qq_36347686/article/details/84930915 或 https://juejin.cn/post/6844903939293331469【MVC模式构建 l纯后端项目】

一、参考上面的文章,个人使用的 后端分层设计,切片设计,架构设计简要介绍如下:

  1、routers文件夹:包含所有的路由数据请求

  2、controller文件夹:业务逻辑层,也就是处理好数据。

  3、model文件夹:数据访问层也就是从数据库中查数据

  4、utils文件夹:包含所有的公共方法和数据返回统一控制方法

二、具体说明:

  1、controller文件夹:https://www.jianshu.com/p/67115796ede5

     具体处理逻辑应放到 controller 中,然后 router 中设置路径和 controller 的对应关系。

  2、DAO层、Service层和Controller层的区别:

     https://blog.csdn.net/qq_22771739/article/details/82344336【里面讲的虽然是java的,但是架构思想是一样的】或 其他 或

     https://www.imooc.com/wenda/detail/548165

     1、Controller层:controller层是做数据格式处理的。对输入的参数service层输出的参数 进行 格式 处理。【接口返回数据格式就是在这里,按约定格式处理好的】

     2、Service层:Service层 就是处理业务的。通过dao去访问数据库,查询多张表的数据,合并数据。都是在这里完成的。

       3、DAO层: DAO层就是 和数据库打交道的。建议Dao只做原子操作,增删改查。某个dao 和 数据库的某张表一一对应,其中封装了增删改查的操作。

posted @ 2018-11-22 10:47  吴飞ff  阅读(1247)  评论(0编辑  收藏  举报