在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ express 如何不用重啟也能修改路由?

express 如何不用重啟也能修改路由?

因為每次重啟express都挺慢的,所以求教有什么方法可以修改express的路由也不用重啟

例如有一個路由 /api,我想修改回調(diào)函數(shù)的內(nèi)容也不用重啟express

暫時想到一個方法就是

app.use('/api', (req, res) => {
  require('./api-route')(req, res)
}

// ./api-route.js
module.exports = function(req, res) {
  // 可以隨意改不用重啟,因為是動態(tài)加載的
}

但缺點就是新增路由,例如增加一個/api2, 這樣還是要重啟express。

請問有什么更好的方法?

回答
編輯回答
傲寒

不重啟怎么生效……
還是用 nodemon 吧

2018年3月26日 22:45
編輯回答
久愛她

每個 require 的 模塊文件 會被 node 緩存起來
可以先 fs.watch(你的路由文件) 拿到 更改的文件名, 重置你的 緩存,或者清空
然后 拿到 新文件 , 用虛擬機(jī) 重新編譯 代碼

const {watch,readFileSync} = reuqire("fs")
const vm  = require("vm")

const file = await readFileSync(更改的文件名)
new vm.Script(file)

然后 重新 require(更改的文件名)
這樣熱更之后 應(yīng)該就能達(dá)到你要的效果

https://cnodejs.org/topic/5977fe1068aa87c774e5ebf2

2018年2月16日 23:37
編輯回答
晚風(fēng)眠
npm install nodemon --save
nodemon server.js

只要你更新了,command+S保存修改的代碼,服務(wù)就會自動刷新。也就能達(dá)到不用重啟服務(wù)的問題

2017年1月16日 22:45