我已经设置了一个node.js服务器应用程序,我想做一些parse.com请求。 我基本上希望它返回parse-object JSON表示。
我的路线:
var blog = require('./models/model');
app.get('/api/article/:permalink', function(req, res) {
res.json(blog.getArticle(req.params.permalink));
});

我的模特:
var Parse = require('parse/node').Parse, // load the parse for node package
keys = require('../../config/keys'); // keys config-file for hosted services
Parse.initialize(keys.app, keys.js);
module.exports = {
getArticle: function(permalink) {
"use strict";
var Article = Parse.Object.extend('Article');
var query = new Parse.Query(Article);
query.include('category');
query.include('profile');
query.equalTo('permalink', permalink);
query.find().then(function(results) {
return results;
}, function(error) {
return error;
});
}
};

问题是,当我调用一个我知道存在的永久链接的文章时,这不会返回任何内容(例如:http://localhost/api/article/testFoo)。我也没有收到任何错误。
我的浏览器控制台瞬间闪烁一条消息,内容如下:
Resource interpreted as Document but transferred with MIME type application/json: "http://localhost/api/article/testFoo"
对我做错的任何建议?
答案 0 :(得分:1)
您正在尝试使用异步函数的返回值。这不起作用,您需要将回调(或res
对象)传递给getArticle
函数,然后将其用于发送数据。
回调:
app.get('/api/article/:permalink', function(req, res) {
blog.getArticle(req.params.permalink, function(data) {res.json(data)});
});
...
getArticle: function(permalink,callback) {
...
query.find().then(function(results) {
callback(results);
}, function(error) {
callback({error: error});
});