加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > C语言 > 正文

node初级进阶学习笔记

发布时间:2020-12-15 03:28:41 所属栏目:C语言 来源:网络整理
导读:初始化一个express项目 新建目录 npm init 生成 package.json ; 安装 express 并写入 package.json(--save) dependencies:依赖关系 "dependencies": { "express": "^4.16.3" } npm install express --save 写个简单实例 const express = require('express')

初始化一个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') %>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读