2016-09-24 2 views
0

こんにちは、私は記事に従っており、実際にはPOST APIを取得できません。 私はデータベースURIへの接続に係数を使用しています。データベース接続がExpressで動作しない

ここに私のコードです。

var express = require('express'); 
var app = express(); 
var bodyParser = require('body-parser'); 

var mongoose = require('mongoose'); 
    mongoose.connect('mongodb://node:[email protected]:27017/hygeBe9b'); 

app.use(bodyParser.urlencoded({extended : true})); 
app.use(bodyParser.json()); 

var port = process.env.port || 8080; 

var router = express.Router(); 

//middleware to use for all requests 

router.use(function(req, res, next){ 
console.log('Something is going on here !'); 

next(); 
}) 
router.get('/', function(req, res){ 
res.json({ 
    message: "Welcome to first API coding !" 
}) 
}); 


router.route('/songs') 
.post(function(req, res){ 
    var song = new Song(); 
    song.name = req.body.title; 

    song.save(function(err) { 
     if (err) { res.send(err);} 
     res.json({message : 'Song Created'}); 
    }) 
}) 
var Song = require('./models/songs'); 


app.use('/api', router); 

app.listen(port); 
console.log('Server running on port: ' + port); 

モデルファイル

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 

var SongsSchema = new Schema({ 
title: String 
}) 

module.exports = mongoose.model('Song', SongsSchema); 

は、ここに私の郵便配達要求コード

curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -H "Cache-Control: no-cache" -H "Postman-Token: 5b280358-3de8-b52c-590b-430f5f4b6766" -d 'title=demo' "http://localhost:8080/api/songs"

https://scotch.io/tutorials/build-a-restful-api-using-node-and-express-4

だと重要なのは、どのように私はどこエラー嘘見るために私のコードをデバッグすることができます? APIはうまくいくようです。

答えて

0

は、このいずれかをチェックして、あなたのコンソールに示す何のエラーを確認できます。

var db = mongoose.connect('mongodb://localhost/dbName', function(err) { 
    if (err) { 
     console.log('Could not connect to MongoDB!', err); 
    } 
}); 

接続構文:localhostの

mongoose.connect('mongodb://[user]:[pass]@[hostAddress]:[port]/[databaseName]',callbackFunc) 

mongoose.connect('mongodb://localhost/databaseName',callbackFunc) 

NB:最初に確認してくださいあなたのmongodが実行中です

+0

ユーザー名とパスワードを使わずにlocalhostを使用できます。しかし、私はユーザー/パスワードを試しても、それは動作しません。したがって、ローカルホストとリモートdbの場合は、基本的にユーザー名とパスワードのuriは機能しません。 – kushalvm

+0

コンソールに表示されるエラーは何ですか? –

+0

{[MongoError:auth failed]名前: 'Mongo Error'、ok:0、errmsg: 'auth failed'、code:18} – kushalvm

関連する問題