2017-05-08 6 views
0

私はNode JSとPostgreSQLで作業しており、これを使用してREST Webサービスを作成しています。ポストメソッドを作成し、POSTMANを介してWebサービスを呼び出していますが、自分の関数でパラメータ値を取得できません。 WebサービスがPostgreSQLのテーブルにnull値を挿入しています。私はビジュアルスタジオ2015を使用してコードをデバッグできません。どうすればこれを達成できますか?郵便配達員を使用してパラメータの値を取得するにはどうすればよいですか?

queries.js

var promise = require('bluebird'); 

var options = { 
    // Initialization Options 
    promiseLib: promise 
}; 

var pgp = require('pg-promise')(options); 
var connectionString = 'postgres://test:[email protected]:8080/test'; 
var db = pgp(connectionString); 


function getAllTask(req, res, next) { 
    debugger; 
    db.any('select * from tasklist') 
     .then(function (data) { 

      res.status(200) 
       .json({ 
        status: 'success', 
        message: 'Retrieved ALL puppies', 
        data: data 

       }); 
     }) 
     .catch(function (err) { 
      return next(err); 
     }); 
} 


function addTask(req, res, next) { 
    debugger; 
    //var task_name = req.param('task_name'); 
    //var task_type = req.param('task_type'); 
    var task_name = req.body.task_name; 
    var task_type = req.body.task_type; 
    console.log(req.body); 
    db.func('inserttask', [task_name, task_type]) 
     .then(function() { 
      res.status(200) 
       .json({ 
        status: 'success', 
        message: 'Inserted one task' 
       }); 
     }) 
     .catch(function (err) { 
      return next(err); 
     }); 
} 


module.exports = { 
    getAllTask: getAllTask, 
    addTask: addTask 
}; 

index.js

var express = require('express'); 
var router = express.Router(); 
var db = require('../queries'); 

/* GET home page. */ 

router.get('/', function (req, res, next) { 

    res.render('index', { title: 'Express' }); 
}); 

router.get('/api/tasklist', db.getAllTask); 
router.post('/api/addtask', db.addTask); 

module.exports = router; 

server.js

var express = require('express'); 
var path = require('path'); 
var favicon = require('serve-favicon'); 
var logger = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 

var index = require('./routes/index'); 
var users = require('./routes/users'); 

var app = express(); 

// view engine setup 
app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'jade'); 

// uncomment after placing your favicon iblic 
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); 
app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: true })); 
app.use(cookieParser()); 
app.use(express.static(path.join(__dirname, 'public'))); 

app.use('/', index); 
app.use('/users', users); 

// catch 404 and forward to error handler 
app.use(function (req, res, next) { 
    var err = new Error('Not Found'); 
    err.status = 404; 
    next(err); 
}); 

// error handler 
app.use(function (err, req, res, next) { 
    // set locals, only providing error in development 
    res.locals.message = err.message; 
    res.locals.error = req.app.get('env') === 'development' ? err : {}; 

    // render the error page 
    res.status(err.status || 500); 
    res.render('error'); 
}); 

module.exports = app; 
+0

console.log(req.body)本体に何かがある場合は、郵便配達員の身体部分に正しく物を入れているかどうかを確認してください。 req.bodyはbodyに格納した要素を返します。 –

答えて

0

私はあなたがすでにノードJSのためのフレームワークとして明示JSを使用していることを想定しています。

あなたはNPMからのボディパーサーモジュールをインストールする必要がまず第一に: -

$ npm install body-parser --save 

あなたは身体-パーサをインストールしたら、アプリ変数定義した後、一度、次のコードを追加します -

var bodyParser = require('body-parser'); 
app.use(bodyParser.json()); // to support json encoded bodies 
app.use(bodyParser.urlencoded({ extended: true })); // to support encoded bodies 

req.body.task_nameとreq.body.task_type

は、私はあなたの探求を誤解している場合、それが動作し、私は申し訳ありませんホープとして今、あなたはあなたのポストリクエストボディ偶然にアクセスすることができますイオン。

+0

あなたの返事に感謝Siddhart。私はすでにこれを私のコードで使っていますが、何も起こりません。 getメソッドを使用している場合、このようなパラメータから値を取得しています。var task_name = req.param( 'task_name');私はpostメソッドで値を取得できませんでした。 –

+0

express jsを使用していますか?サーバのコードスニペットを共有してください。 –

+0

私の上記の質問にある更新されたコードを確認してください。 –

0

POSTMANからリクエストを送信するときに、ヘッダー内にContent-Type:application/jsonを追加する必要があります。

+0

返信いただいたJetonに感謝します。今、私に与えているSyntaxError:予期しないトークン - 。ポストマンで郵便配達 –

+0

で400不正な要求は、本体部には、あなたの構造は次のようにする必要があります: { \t「タスク名」:「テスト」、 \tは「task_type」:「タイプ」 } – Jeton

+0

はい、私は同じだが、まだ同じエラー。 –

関連する問題