提问人:Prabir Choudhury 提问时间:11/2/2022 更新时间:11/2/2022 访问量:35
错误:Route.get() 需要回调函数,但在 Route 上获得了 [object Promise]
Error: Route.get() requires a callback function but got a [object Promise] at Route
问:
我的问题就像问题的标题一样。我正在尝试将我的节点 n express 应用程序中的问题隔离到单独的路由和控制器中,以保持主服务器 .js 文件的清洁。
我的项目结构如下
controller
|---------- controller.js
database
|---------- db.js
route
|---------- players.js
package.json
|
server.js
我的控制器.js是:
const {sql, poolPromise, config}=require('../database/db')
const msnodesqlv8=require('msnodesqlv8');
const getAllPlayers=async(req, res, next)=>
{
try
{
sql.connect(config, function(err)
{
if(err)
{
console.log(err);
}
else
{
var request=new sql.Request();
request.query("select * from players", function(err, recordset)
{
if(err)
{
console.log("Error while querying: "+err)
}
else
{
res.send(recordset);
}
});
}
});
}
catch(err)
{
res.status(400).send(error.message);
}
}
module.exports={
getAllPlayers
}
路由文件为:
const express=require('express');
const router=express.Router();
const playerControll=require('../controller/controller')
router.get('/players', playerControll.getAllPlayers());
module.exports={
routes: router
}
我的主服务器.js文件为:
const express = require('express')
const bodyParser = require('body-parser')
const cors = require('cors')
const fs = require('fs')
const path = require('path')
const morgan = require('morgan')
const router=express.Router()
const app = express()
const {poolPromise, config, sql}=require('./database/db')
const playerRoutes=require('./route/players');
app.use(cors())
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
app.use('/api/v1', playerRoutes); <---- attaching to the route file
app.use(morgan('dev'))
app.use(router)
const port=3200;
app.listen(process.env.PORT || port , (err) => {
if(err)
console.log('Unable to start the server!')
else
console.log('Server started running on : ' + port)
})
在运行我的应用程序并执行路由 localhost:3200/api/v1/players 时,我收到错误错误:Route.get() 需要回调函数,但在 Route 上获得了 [object Promise]
这指向哪里?哪个文件?你能引导我朝着正确的方向前进,并帮助我正确地排列关注控制器和事件,以便路由 /api/v1/players 正常工作并获取数据。需要这方面的帮助。我无法破译错误消息。哪个对象?在纠正代码方面需要帮助。我是节点和快递的完全新手,在大多数像这样的故障中,我都在海上。
谢谢
答: 暂无答案
评论
router.get('/players', playerControll.getAllPlayers)
getAllPlayers
app.use('/api/v1', playerRoutes.routes)
不。app.use('/api/v1', playerRoutes)