Javascript Express.js | Node.js-我可以在其他资源中使用资源吗?

Javascript Express.js | Node.js-我可以在其他资源中使用资源吗?,javascript,node.js,express,Javascript,Node.js,Express,当我的node.js/express.js程序中有两个“get”资源时,我可以在第二个资源中使用第一个资源吗 例如: var express = require('express'); var app = express(); app.get('/resource1', function (req, res) { res.send("Hello"); } app.get('/resource2', function (req, res) { // Can I use th

当我的node.js/express.js程序中有两个“get”资源时,我可以在第二个资源中使用第一个资源吗

例如:

var express = require('express');

var app = express();

app.get('/resource1', function (req, res) {
    res.send("Hello");
}

app.get('/resource2', function (req, res) {

    // Can I use the response from resource1 here?

}

如果是这样,我该怎么做呢?

您可以尝试做两件事:

  • 您可以从resource2向resource1发出http请求,并从那里获得响应

  • 在我看来,更好的解决方案是将resource1逻辑放在“Business logics”函数中,并从resource2端点调用此函数

  • 如果将代码重新编写到以下位置,还可以调用resource1的实际请求函数:

    app.get('/resource1', resource1Func);
    
    function resource1Func(req, res)
    {
        res.send("Hello");
    }
    
    app.get('/resource2', function (req, res) {
        resource1Func(res, res);
        //some other logics
    }
    

    您可以尝试做两件事:

  • 您可以从resource2向resource1发出http请求,并从那里获得响应

  • 在我看来,更好的解决方案是将resource1逻辑放在“Business logics”函数中,并从resource2端点调用此函数

  • 如果将代码重新编写到以下位置,还可以调用resource1的实际请求函数:

    app.get('/resource1', resource1Func);
    
    function resource1Func(req, res)
    {
        res.send("Hello");
    }
    
    app.get('/resource2', function (req, res) {
        resource1Func(res, res);
        //some other logics
    }
    

    但是当我调用resource2中的函数时,我不能再执行其他一些逻辑,因为头已经发送了。因为resource1函数发送文本。这是正确的,因此我的建议2可能是您的最佳解决方案。你能详细说明你到底想达到什么目的吗?我有两个资源。书籍和图书馆。一个资源给我所有的库,另一个资源给我一本id为的书。这些书是json字符串,它们包含有该书的所有库的id。现在,我想扩展“给我所有的图书馆资源”与“给我所有图书馆持有一本特定的书”。为此,我想使用“按id给我一本书”资源。当我得到保存书籍的图书馆的ID时,我可以在“给我所有图书馆资源”中过滤它们。因此,在这种情况下,您可以创建一个名为getBookById的函数,书籍资源应该调用该函数,它将执行所有逻辑,而不使用express对象('req','res')。然后,您可以从Libraries资源调用此函数,而无需设置标题并向客户端响应任何内容,直到所有“为我提供所有保存特定书籍的库”请求逻辑完成。但是,当我在resource2中调用此函数时,此后我无法执行其他一些逻辑,因为标题已经发送。因为resource1函数发送文本。这是正确的,因此我的建议2可能是您的最佳解决方案。你能详细说明你到底想达到什么目的吗?我有两个资源。书籍和图书馆。一个资源给我所有的库,另一个资源给我一本id为的书。这些书是json字符串,它们包含有该书的所有库的id。现在,我想扩展“给我所有的图书馆资源”与“给我所有图书馆持有一本特定的书”。为此,我想使用“按id给我一本书”资源。当我得到保存书籍的图书馆的ID时,我可以在“给我所有图书馆资源”中过滤它们。因此,在这种情况下,您可以创建一个名为getBookById的函数,书籍资源应该调用该函数,它将执行所有逻辑,而不使用express对象('req','res')。然后,您可以从Libraries资源调用此函数,而无需设置标题并向客户端响应任何内容,直到完成所有“为我提供所有保存特定书籍的库”请求逻辑