node初级进阶学习笔记

初始化一个express项目

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

dependencies:依赖关系
 "dependencies": {
    "express": "^4.16.3"
  }

npm install express --save

写个简单实例

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

app.get('/',function(req,res){
res.send('hello,express')
})
app.listen(3000);

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

supervisor

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

npm install supervisor -g

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

路由

在以上代码基础上修改:

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

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

const express = require('express')
const app = express()
const indexRoute = require('./routes/index.js')
const usersRoute = require('./routes/users.js')
app.use('/',indexRoute)
app.use('/user',usersRoute)

app.listen(3000)

routes/index.js

const express = require('express')
const router = express.Router()
router.get('/',res){
  res.send('hello,express')
})

module.exports = router;

routes/users.js

const express = require('express')
const router = express.Router()

router.get('/:name',res) {
res.send('hello,' + req.params.name)
})

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:

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

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


  
    
  
  

views/footer.ejs

  

views/users.ejs

<%- include('header') %>
      

<%= name.toUpperCase() %>

hello,<%= name %>

<%- include('footer') %>

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...