Javascript 对象函数路由器(req,res,next){router.handle(req,res,next);}没有方法
我只想在mysql数据库中插入一行。我已经安装了passport和hjs。我只是将一个表单的值从app.js发送到一个js文件,在那里我想插入数据。但出现以下错误消息:Javascript 对象函数路由器(req,res,next){router.handle(req,res,next);}没有方法,javascript,node.js,express,Javascript,Node.js,Express,我只想在mysql数据库中插入一行。我已经安装了passport和hjs。我只是将一个表单的值从app.js发送到一个js文件,在那里我想插入数据。但出现以下错误消息: Object function router(req, res, next) { router.handle(req, res, next); } has no method 'addUser' 我的app.jscode SQL驱动程序 var db = require('./db'); 配置Passport var pa
Object function router(req, res, next) { router.handle(req, res, next); }
has no method 'addUser'
我的app.js
code
SQL驱动程序
var db = require('./db');
配置Passport
var passport = require('passport');
var Strategy = require('passport-local').Strategy;
我要执行操作的路径
var add = require('./routes/dosignup');
app.post('/dosignup', function(req, res, next) {
add.addUser(req.body);
res.redirect('/');
});
在位于routes文件夹中的DosGnup
页面上
var express = require('express');
var router = express.Router();
var db = require('./db');
var addUser = {};
exports.addUser = function(usr){
console.log(usr);
var details = {
title: usr.title,
firstname: usr.firstname
};
db.query('INSERT into `users` SET ?', details, function (err, result) {
if (err)
throw err;
console.log(' The value inserted. ');
});
};
module.exports = router;
问题在于最后一行:
module.exports = router;
您正在将addUser
函数分配给exports对象,但随后使用此行覆盖它并返回router
从外观上看,您不需要路由器或dosignup
中的任何与express相关的东西,因此您可以将其删除。但是,如果您确实需要它来处理此处未显示的某些部分,只需以与addUser
相同的方式返回即可:
exports.router = router;
这样,返回的对象将同时包含router
和addUser