如何在module.exports中导入此代码?
我在节点js和js中都很新。 我希望这段代码可以在其他路线中使用
cache = (duration) => {
return (req, res, next) => {
let key = '__express__' + req.originalUrl || req.url
let cachedBody = mcache.get(key)
if (cachedBody) {
res.send(cachedBody)
return
} else {
res.sendResponse = res.send
res.send = (body) => {
mcache.put(key, body, duration * 1000);
res.sendResponse(body)
}
next()
}
}
}
如何导出?
我是这样的:
module.exports = cache = (duration) => {
return (req, res, next) => {
let key = '__express__' + req.originalUrl || req.url
let cachedBody = mcache.get(key)
if (cachedBody) {
res.send(cachedBody)
return
} else {
res.sendResponse = res.send
res.send = (body) => {
mcache.put(key, body, duration * 1000);
res.sendResponse(body)
}
next()
}
}
}
我也试试:
module.export = {
cache: function(duration) {
return (req, res, next) => {
let key = '__express__' + req.originalUrl || req.url
let cachedBody = mcache.get(key)
if (cachedBody) {
res.send(cachedBody)
return
} else {
res.sendResponse = res.send
res.send = (body) => {
mcache.put(key, body, duration * 1000);
res.sendResponse(body)
}
next()
}
}
}
}
但是当我尝试在get请求中使用它时:
var expCache = require('../../middleware/cache');
router.get('/:sid/fe',expCache.cache(3000),function(req,res) {
它带来:
TypeError: expCache.cache is not a function
此致
答案 0 :(得分:1)
如果您希望能够拨打ALTER TABLE
,则需要导出对象:
expCache.cache
但是,如果您想保持导出的模块不变,请改为调用它:
module.exports = {
cache: // your function
}
答案 1 :(得分:1)
尝试
var expCache = require('../../middleware/cache');
router.get('/:sid/fe',expCache(3000),function(req,res) {..
您已经导出了缓存功能,而不是包含它的对象(这是您尝试将其用于路由器的方式)。