node初级进阶学习笔记

前端之家收集整理的这篇文章主要介绍了node初级进阶学习笔记前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

初始化一个express项目

新建目录 npm init 生成package.json;
安装 express 并写入package.json(--save)

dependencies:依赖关系
  1. "dependencies": {
  2. "express": "^4.16.3"
  3. }

npm install express --save

写个简单实例

  1. const express = require('express');
  2. const app = express();
  3. app.get('/',function(req,res){

  4. res.send('hello,express')

  5. })

  6. app.listen(3000);

根目录命令行 node index.js 打开浏览器访问 localhost:3000 时,页面显示 hello,express。
生成一个 express 实例 app,挂载了一个根路由控制器,然后监听 3000 端口并启动程序

supervisor

在开发过程中,每次修改代码保存后,我们都需要手动重启程序,才能查看改动的效果。使用 supervisor 可以解决这个繁琐的问题,全局安装 supervisor

npm install supervisor -g

supervisor index.js 更改后刷新浏览器即可。

路由

在以上代码基础上修改

  1. app.get('/users/:name',res) {
  2. res.send('hello,'+ req.params.name)
  3. })

req 包含了请求来的相关信息,res 则用来返回该请求的响应
req.query: 解析后的 url 中的 querystring,如 ?name=haha,req.query 的值为 {name: 'haha'}
req.params: 解析 url 中的占位符,如 /:name,访问 /haha,req.params 的值为 {name: 'haha'}
req.body: 解析后请求体,需使用相关的模块,如 body-parser,请求体为 {"name": "haha"},则 req.body 为 {name: 'haha'}

res.send():返回请求

express.Router

3.2.1 express.Router

上面只是很简单的路由使用的例子(将所有路由控制函数都放到了 index.js),但在实际开发中通常有几十甚至上百的路由,都写在 index.js 既臃肿又不好维护,这时可以使用 express.Router 实现更优雅的路由解决方案。 创建空文件夹 routes,在 routes 目录下创建 index.js 和 user.js。最后代码如下:

index.js

  1. const express = require('express')
  2. const app = express()
  3. const indexRoute = require('./routes/index.js')
  4. const usersRoute = require('./routes/users.js')
  5. app.use('/',indexRoute)
  6. app.use('/user',usersRoute)
  7. app.listen(3000)

routes/index.js

  1. const express = require('express')
  2. const router = express.Router()
  3. router.get('/',res){
  4. res.send('hello,express')
  5. })
  6. module.exports = router;

routes/users.js

  1. const express = require('express')
  2. const router = express.Router()
  3. router.get('/:name',res) {

  4. res.send('hello,' + req.params.name)

  5. })

  6. module.exports = router;

将 / 和 /users/:name 的路由分别放到了 routes/index.js 和 routes/users.js 中,每个路由文件通过生成一个 express.Router 实例 router 并导出,通过 app.use 挂载到不同的路径。这两种代码实现了相同的功能,但在实际开发中推荐使用 express.Router 将不同的路由分离到不同的路由文件中。

ejs(模板引擎)

npm i ejs --save

修改index.js:

  1. const path = require('path');
  2. app.set('views',path.join(__dirname,'views'))// 设置存放模板文件的目录
  3. app.set('view engine','ejs')// 设置模板引擎为 ejs

通过 app.set 设置模板引擎为 ejs 和存放模板的目录。在 myblog 下新建 views 文件夹,在 views 下新建 users.ejs,添加如下代码

views/footer.ejs

views/users.ejs

  1. <%- include('header') %>
  2. <%= name.toUpperCase() %>

  3. hello,<%= name %>

  4. <%- include('footer') %>

猜你在找的程序笔记相关文章