Javascript 在Nodejs中创建简单的oEmbed系统

Javascript 在Nodejs中创建简单的oEmbed系统,javascript,node.js,Javascript,Node.js,对于个人项目,我正在尝试使用Nodejs创建一个简单的oEmbed系统 我的路线如下所示: app.get('/oembed/:url', function (req, res) { oembed.get(req.params.url, function (error, result) { return res.json(200, {message: "OK"}); }); }); app.get('/oembed/:url', function (req, r

对于个人项目,我正在尝试使用Nodejs创建一个简单的oEmbed系统

我的路线如下所示:

app.get('/oembed/:url', function (req, res) {
    oembed.get(req.params.url, function (error, result) {
        return res.json(200, {message: "OK"});
    });
});
app.get('/oembed/:url', function (req, res) {
    oembed.get(req.params.url, function (error, result) {
        if (error) {
            res.json(500, {message: error});
        } else {
            res.json(200, {message: "OK"});
        }
    });
});
使用
var oembed=require('../oembed')公开oembed

对于
oembed.js
本身,我有:

var request = require('request');

exports.get = function(url, callback) {
    //this bit will be developed to call different functions depending on the URL
    html = vimeo(url)

};

function vimeo(url) {
    var videoUrl = url;
    var endpoint = 'http://www.vimeo.com/api/oembed.json';
    var url = endpoint + '?url=' + encodeURIComponent(videoUrl) + '&width=640';

    request(url, function (error, response, body) {
        if (!error && response.statusCode == 200) {
            var video = JSON.parse(body);
          return video.html
        }
    })

}
到目前为止,
vimeo
函数将所需的html返回给函数调用,但我对此有点不知所措。我不确定如何将html返回到初始请求(oembed.get部分)并使用回调的错误和结果参数


任何帮助(和建议)都将不胜感激。

您似乎不明白回调函数是如何工作的。在
oembed.js
文件中需要类似的内容:

var request = require('request');

exports.get = function(url, callback) {
    var endpoint = 'http://www.vimeo.com/api/oembed.json';

    request(endpoint + '?url=' + encodeURIComponent(url) + '&width=640', function (error, response, body) {
        if (!error && response.statusCode == 200) {
            try {
                callback(null, JSON.parse(body).html);
            } catch (error) {
                callback(error);
            }
        }
    });
};
您的路线应该如下所示:

app.get('/oembed/:url', function (req, res) {
    oembed.get(req.params.url, function (error, result) {
        return res.json(200, {message: "OK"});
    });
});
app.get('/oembed/:url', function (req, res) {
    oembed.get(req.params.url, function (error, result) {
        if (error) {
            res.json(500, {message: error});
        } else {
            res.json(200, {message: "OK"});
        }
    });
});

你不应该回信吗?我怀疑您正在返回“undefined”,然后您将在控制台中看到一些html被返回?非常有用,谢谢-我认为坚持使用我的私有函数(例如Vimeo)没有问题,或者您删除它有什么原因吗?顺便说一下,您完全正确-仍在试图让我的头脑了解回调!ha haI删除它只是因为您的
exports.get()
只调用了它,我在导出的函数中添加了它的函数,您可以重新添加它,但保留相同的结构。感谢您的帮助-我现在可以清楚地看到回调是如何工作的