我想用可以查询的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/

10-09 06:19