我只想在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');
配置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('/');
});
位于路线文件夹中的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;
答案 0 :(得分:2)
问题在于最后一行:
module.exports = router;
您正在将addUser
函数分配给exports对象,但之后使用此行覆盖它并返回router
。
从它的外观来看,你不需要dosignup
中的路由器或任何明确相关的东西,所以你可以删除它。但是,如果您确实需要某些未出现在此处的部分,请按照与addUser
相同的方式返回它:
exports.router = router;
这样返回的对象将同时包含router
和addUser