我有這樣的API與Node.js的製作,這是簡單的,它只是一個箱子後:節點,JS和jQuery不工作在localhost
var express = require('express');
var mongoose = require('mongoose');
var bodyParser = require('body-parser');
var app = express();
var Posts = require('./models/posts');
mongoose.connect('mongodb://localhost/api', function(err) {
if(err) {
console.log("Error with mongodb: " + err);
}
});
app.use(bodyParser());
var port = process.env.PORT || 3000;
var router = express.Router();
router.get('/', function(req, res){
res.json({message: 'It\'s working'});
});
router.route('/posts')
.get(function(req, res) {
Posts.find(function(err, data) {
if(err) {
res.send(err);
}
res.json(data);
});
})
.post(function(req, res) {
var posts = new Posts();
posts.title = req.body.title;
posts.description = req.body.description;
posts.content = req.body.content;
posts.save(function(err) {
if(err) {
res.send(err);
}
res.json({message: "Post saved!"});
});
});
router.route('/posts/:id')
.get(function(req, res){
Posts.findById(req.param.id, function(err, data) {
if(err) {
res.send(err);
}
res.json(data);
});
})
.put(function(req, res) {
Posts.findById(req.params.id, function(err, data) {
if(err) {
res.send(err);
}
data.nome = req.body.nome;
data.description = req.body.description;
data.content = req.body.content;
data.date = Date.now;
data.save(function(err) {
if(err) {
res.send(err);
}
res.json({message: 'Post updated!'});
});
});
})
.delete(function(req, res) {
Posts.remove({_id: req.params.id}, function(err, data) {
if(err) {
res.send(err);
}
res.json({message: 'Post deleted!'});
});
});
app.use('/api', router);
app.listen(port, function() {
console.log("Server running on: " + port);
});
而且我對jQuery的
$.ajax({
url: 'http://localhost:3000/api/posts/',
type: "GET",
dataType: 'jsonp',
success: function(returnit) {
$.each(returnit.posts, function() {
var post = this;
$('<p>').text(post.title).appendTo('.blog--area');
});
}
});
驗證碼
有人可以向我解釋發生了什麼,爲什麼發生?我是JavaScript新手,它是框架,當我在控制檯上查看時,它什麼都沒說。
如果可以的話,請給出一些提示。謝謝...
編輯
我忘了提及的錯誤,它沒有顯示的職位。
你回來了什麼錯誤? – FiringSquadWitness
它不顯示帖子 – joaomarcuslf
對於調試,嘗試添加一些'console.logs'到你的代碼。例如。在函數posts.find(function(err,data){'添加類似'console.log(「data from db」,data)'')到你的回調函數之後。在成功函數中在客戶端執行同樣的操作:'console.log(「received data」,returnIt)'等等。至少用這種方法你可以找出問題的原因。 – Anastasia