如何解决无法跟踪问题this.stack.pushlayer;在node.js中
this is my code
usercontroller:-
const {hashSync,genSaltSync}=require('bcrypt');
const {create}=require('./user.service');
module.exports={
createUser:(req,res)=>{
const body=req.body;
const salt=genSaltSync(10);
body.password=hashSync(body.password,salt);
create(body,(error,results)=>{
if(error){
return res.status(500).json(
{
success:0,message : "Database connection error"
}
);
}
return res.status(200).json({
status:200,data:results
});
})
}
}
userservice:-
const pool=require("../config/database")
module.exports={
create: (data,callback)=>{
pool.query(
`insert into registration(firstName,lastName,gender,email,password,number)
values(?,?,?)`,[
data.first_name,data.last_name,data.gender,data.email,data.password,data.number
],results,fields) =>
{
if(error)
{
return callback(error);
}
else{
return callback(null,results);
}
}
);
}
}
userrouter:-
const {createUser} = require("../users/user.controller")
const {createUser}=require("./user.controller")
const router=require("express").Router;
router.post("/",createUser);
module.exports=router;
app.js
require("dotenv").config();
const express = require("express")
const app=express();
const userrouter=require('./users/user.router')
app.use("/api/users",userrouter);
app.listen(process.env.APP_PORT,()=>{
console.log("server up and running")
});
.env
APP_PORT=3000
DB_PORT=3306
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=divyanshu123
MYSQL_DB=test
我无法运行它并出现错误:-
[nodemon] 2.0.4
[nodemon]随时重新启动,请输入rs
[nodemon]观看路径:。
[nodemon]看扩展:js,mjs,json
[nodemon]开始node app.js
C:\ Users \ Divyanshu Thakur \ Desktop \ Jwt \ node_modules \ express \ lib \ router \ index.js:502
this.stack.push(layer);
^
TypeError:无法读取未定义的属性“ push” 在Function.route(C:\ Users \ Divyanshu Thakur \ Desktop \ Jwt \ node_modules \ express \ lib \ router \ index.js:502:14) 在Function.proto [发布后](C:\ Users \ Divyanshu Thakur \ Desktop \ Jwt \ node_modules \ express \ lib \ router \ index.js:509:22) 在对象。 (C:\ Users \ Divyanshu Thakur \ Desktop \ Jwt \ users \ user.router.js:4:8) 在Module._compile(内部/模块/cjs/loader.js:1133:30) 在Object.Module._extensions..js(内部/模块/cjs/loader.js:1153:10) 在Module.load(internal / modules / cjs / loader.js:977:32) 在Function.Module._load(内部/模块/cjs/loader.js:877:14) 在Module.require(internal / modules / cjs / loader.js:1019:19) 在要求时(内部/模块/cjs/helpers.js:77:18) 在对象。 (C:\ Users \ Divyanshu Thakur \ Desktop \ Jwt \ app.js:4:18) [nodemon]应用程序崩溃-等待文件更改,然后再开始...
解决方法
更改此:
const router=require("express").Router;
对此:
const router=require("express").Router();
您必须实际调用factory函数来创建新路由器。当您尝试这样做时,便会出现问题:
router.post("/",createUser);
或:
app.use("/api/users",userrouter);
但是,您的对象实际上不是路由器。
,不确定这是否是您的问题的根源,但这似乎很成问题:
const { createUser } = require("../users/user.controller")
const { createUser } = require("./user.controller")
来自userRouter
文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。