1
我有使用$ http.get發送數據的req.body問題。當我在routes.js方法中從GET更改爲POST時,以及將我的服務更改爲$ http.post時,一切正常,但使用GET,我無法將任何數據發送到節點中的服務器。任何人有任何想法?
server.js
// modules =================================================
var express = require('express');
var app = express();
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var methodOverride = require('method-override');
var path = require('path');
// configuration ===========================================
var db = require('./config/db');
var port = process.env.PORT || 8080;
mongoose.connect(db.url);
app.use(express.static(__dirname + '/public'));
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
// routes ==================================================
require('./app/routes')(app,__dirname);
// start app ===============================================
app.listen(port);
console.log('Magic happens on port ' + port);
exports = module.exports = app;
./app/routes.js
module.exports = function(app, __dirname) {
var Card = require('./models/card');
app.post('/create', function(req, res) {
var card = new Card();
card.polishWord = req.body.polishWord;
card.polishDescription = req.body.polishDescription;
card.englishWord = req.body.englishWord;
card.englishDescription = req.body.englishDescription;
card.category = req.body.category;
card.save(function(err){
if(err){
res.send(err);
}
res.json({message: 'Card created'});
});
});
app.get('/take', function(req, res) {
var condition = req.body.condition || {};
console.log(req.headers);
console.log('______________');
console.log(req.body);
console.log('______________');
/*TODO :: Czemu nie odbiera parametrow GET*/
Card.find(condition,function(err, cards) {
if (err)
res.send(err);
res.json(cards);
});
});
app.get('*', function(req, res) {
res.sendFile('/public/index.html',{"root": __dirname});
});
};
./public/js/services/CardService(部分)
cardService.getAllCards = function(){
return $http.get('/take',{params: {condition:{"category":"animal"}},data: {condition:{"category":"animal"}}});
};
req.headers
{ host: 'localhost:8080',
connection: 'keep-alive',
accept: 'application/json, text/plain, */*',
'user-agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/50.0.2661.102 Safari/537.36',
referer: 'http://localhost:8080/card',
'accept-encoding': 'gzip, deflate, sdch',
'accept-language': 'pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4',
cookie: '_ga=GA1.1.1073910751.1465203314' }
.package.json(依賴)
"dependencies": {
"express": "~4.13.1",
"mongoose": "4.4.20",
"body-parser": "~1.15.1",
"method-override": "~2.0.2"
},
任何人有一個想法?
當你想使用GET方法,req.params將有助於你得到的參數。當我們使用POST方法時,使用req.body。 –
你可以請使用參數,並試試它應該工作。 –
我用5分鐘前req.params,和相同的結果。 :( – Samot