我想用可以查询的API制作一个小型的简单Web服务器。
所以我有一个包含以下内容的server.js文件:
var demandeController = require('./api/controller/DemandeController')
var http = require('http')
var express = require('express')
var app = express();
var myRouter = express.Router();
var server = http.createServer();
myRouter.route('/demandes').get((request,response)=>{
var demandes = demandeController.getAllDemandes();
response.json(demandes);
})
app.use(myRouter);
app.listen('8080')
我也有包含以下内容的模块'DemandeController':
var sql = require('../../node_modules/mssql');
///my secret config
}
module.exports = function getAllDemandes(){
new sql.ConnectionPool(sqlConfig).connect().then(pool=>{
return pool.query('SELECT * FROM DEMANDES')
}).then(result=>{
return JSON.stringify(result);
})
}
问题是我无法将“ DemandeController”模块导入到server.js文件中。
这是错误消息:
TypeError:demandeController.getAllDemandes不是一个函数
在myRouter.route.get(C:_AureliaJS \ HotlineFront&Back \ HotlineAPI \ server.js:11:37)
在Layer.handle上[作为handle_request](C:_AureliaJS \ HotlineFront&Back \ HotlineAPI \ node_modules \ express \ lib \ router \ layer.js:95:5)
在下一个(C:_AureliaJS \ HotlineFront&Back \ HotlineAPI \ node_modules \ express \ lib \ router \ route.js:137:13)
在Route.dispatch(C:_AureliaJS \ HotlineFront&Back \ HotlineAPI \ node_modules \ express \ lib \ router \ route.js:112:3)
在Layer.handle上[作为handle_request](C:_AureliaJS \ HotlineFront&Back \ HotlineAPI \ node_modules \ express \ lib \ router \ layer.js:95:5)
在C:_AureliaJS \ HotlineFront&Back \ HotlineAPI \ node_modules \ express \ lib \ router \ index.js:281:22
在Function.process_params(C:_AureliaJS \ HotlineFront&Back \ HotlineAPI \ node_modules \ express \ lib \ router \ index.js:335:12)
在下一个(C:_AureliaJS \ HotlineFront&Back \ HotlineAPI \ node_modules \ express \ lib \ router \ index.js:275:10)
在Function.handle(C:_AureliaJS \ HotlineFront&Back \ HotlineAPI \ node_modules \ express \ lib \ router \ index.js:174:3)
在路由器上(C:_AureliaJS \ HotlineFront&Back \ HotlineAPI \ node_modules \ express \ lib \ router \ index.js:47:12)
感谢您的帮助
最佳答案
尝试将您的getAllDemandes()
函数放入变量中,并使用module.exports
导出变量而不是整个函数
关于javascript - NodeJS:myFunction()不是函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56904086/