我尝试将router.post放入函数中并将其导出到app.js。但这没有生效。这是我的代码。
crypto.js
function getPublicKey() {
console.log('111');
router.post('/get-public-key', (req, res) => {
fs.readFile(__dirname + '/keys/rsa-pub.pem', 'utf8', (err, data) => {
if (err) {
throw err
} else {
res.send(data)
}
})
});
}
module.exports = {
getPublicKey
}
app.js
const cryptoRouter = require('./modules/crypto/router');
cryptoRouter.getPublicKey();
它打印了'111'。但是我不能开机自检/ get-public-key。 我该怎么办?谢谢!
答案 0 :(得分:0)
我认为getPublicKey
应该返回公共密钥
function getPublicKey() {
fs.readFile(__dirname + '/keys/rsa-pub.pem', 'utf8', (err, data) => {
if (err) {
throw err
}
return data
})
}
然后,在app.js
app.post('/get-public-key', (req, res) => {
res.send(getPublicKey)
})
如果您想使用router
,则应这样做:
// ./routes/somewhere.js
const router = require('express').Router()
router.post('/something', (req, res) => {
res.send('You made it!')
})
module.exports = router
然后
// ./app.js
app.use('/somewhere', require('./routes/somewhere'))
最后,您可以向/somewhere/something
发出发帖请求。
答案 1 :(得分:0)
您可以将app
的实例传递给函数并返回路由
function getPublicKey(app) {
console.log('111');
return app.post('/get-public-key', (req, res) => {
fs.readFile(__dirname + '/keys/rsa-pub.pem', 'utf8', (err, data) => {
if (err) {
throw err
} else {
res.send(data)
}
})
})
}
module.exports = {
getPublicKey
}
然后在您的app.js
中,只需传入app
的实例即可调用:
const cryptoRouter = require('./modules/crypto/router');
cryptoRouter.getPublicKey(app);