对象函数路由器(req,res,next){router.handle(req,res,next); }没有办法

我只想在mysql数据库中插入一行。 我已经安装了护照,也hjs.I只是发送一个表单的值从app.js到一个js文件,在那里我想插入的数据。 但是在那里显示错误信息:

Object function router(req, res, next) { router.handle(req, res, next); } has no method 'addUser' 

我的app.js代码

SQL驱动程序

 var db = require('./db'); 

configuration护照

 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('/'); }); 

在位于path文件夹中的dosignup页面上。

 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路由器或任何快递相关的东西,所以你可以删除它。 但是,如果您确实需要某些不在此处显示的部分,请按照与addUser相同的方式将其addUser

 exports.router = router; 

这样返回的对象将包含routeraddUser