저는 REST와 Express를 사용하는 데있어서 처음이에요. 그리고 난 다음에이 tutorial을 REST API에 따라 왔습니다.POST 메서드를 사용하는 경우 Node.js req.body가 비어 있습니다.
var express = require('express');
var bodyParser = require('body-parser');
var mongoose = require("mongoose");
var app = express();
var port = parseInt(process.env.PORT, 10) || 3000;
app.use(bodyParser.urlencoded({ extended: true}));
app.use(bodyParser.json());
Genre = require('./models/genre');
//Connect to mongoose
mongoose.connect('mongodb://localhost/bookstore');
var db = mongoose.connection;
app.listen(port);
console.log('Running on port 3000\n\n');
app.post('/api/genres', function(req, res){
console.log(req.body);
var genre = req.body;
Genre.addGenre(genre, function(err, genre){
if (err) {
console.log(err);
res.send({status: 'something went wrong'});
}else{
res.send({status: 'saved'});
res.json(genre);}
});
});
내가 POST 요청을 확인하기 위해 파이어 폭스에 나머지 쉬운을 사용하고 있습니다 : 여기 내 app.js 코드입니다. 본문이 비어있어 "Genre Validation failed"오류가 생성됩니다. 이 사용되는 스키마는 다음과 같이 모델에 정의되어있다 : 나는 여러 가지 다른 인기 스레드를 시도했습니다
var mongoose = require("mongoose");
//Genre Schema
var genreSchema = new mongoose.Schema({
name: {
type: String,
required: true
},
create_data:{
type: Date,
default: Date.now
}
});
var Genre = module.exports = mongoose.model('Genre', genreSchema);
// add genre
module.exports.addGenre = function(genre, callback){
Genre.create(genre, callback);
};
하지만 여전히 문제가 해결되지 않습니다. 모듈을 가져 오는 순서를 재 배열하고 'application/x-www-form-urlencoded'를 사용하여 양식으로 데이터를 입력 해 보았습니다. 어떤 생각?
편집 : CONSOLE.LOG의 출력 (req.body)을 console.log (REQ)의
{}
출력 jsfiddle.net에 jbkb1yxa에있다 (StackOverflow의 습관은 나를 포함 할 수 있습니다. 내가 사과를 저 명성 포인트를 가지고 있기 때문에 더 많은 링크) 쉽게 REST의 스크린 샷 :. http://imgur.com/6QmQqRV
console.log (req) 및 console.log (req.body)의 결과를 표시합니다. POST 요청을 잘못된 형식으로 전달 중일 수 있습니다. 요청 본문이 JSON인지 확인하십시오. 매개 변수를 전달하는 방식의 이미지를 추가 할 수 있습니다. – rresol
POST 요청은 어떻게 작성됩니까? – jfriend00
아마 api에 POST 요청을하는 방법 일 것입니다. – nozari