Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对象函数路由器(req,res,next){router.handle(req,res,next);}没有方法_Javascript_Node.js_Express - Fatal编程技术网

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

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

我只想在mysql数据库中插入一行。我已经安装了passport和hjs。我只是将一个表单的值从app.js发送到一个js文件,在那里我想插入数据。但出现以下错误消息:

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