对象函数路由器(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;
这样返回的对象将包含router
和addUser