2016-11-13 18 views
1

私はmysqlデータベースに行を挿入したいだけです。パスポートとhjをインストールしました。私はapp.jsからjsファイルにフォームの値を送信しています。そこにデータを挿入したいのですが。オブジェクトファンクションルータ(req、res、next){router.handle(req、res、next); }メソッドがありません

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

マイapp.jsコード

SQLドライバパスポート

var passport = require('passport'); 
var Strategy = require('passport-local').Strategy; 

私はアクション

を実行したいルートを設定

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

:しかし、エラーメッセージが表示

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; 

答えて

2

問題は、最後の行である:

module.exports = router; 

あなたは、輸出対象に、あなたのaddUser機能を割り当てているが、その後あなたがこの行でそれを無効にし、代わりにrouterを返します。

ルックやエクスプレス関連のものはdosignupには必要ないので、削除することができます。しかし、あなたはここに表示されていないいくつかの部分のためにそれを必要がある場合は、ちょうどあなたがaddUserで行うのと同じ方法でそれを返す:

exports.router = router; 

返されたオブジェクトは、それが動作の両方routeraddUser

+0

が含まれていますその方法は、 。ありがとう。 –

関連する問題