繁体   English   中英

是否可以将数据从节点 js 传递到前端 js 而不是 html?

[英]Is it possible to pass data from node js to frontend js and not to html?

我正在尝试将数据(数组)从 node.js 后端传递到前端 JS 以在那里处理它。 我不想将数据直接传递给后端服务的 html 文件,因为我想保持它干净并且不想在那里做任何循环等。

我的后端部分如下所示:

app.get("/search-db", function (req, res) {
    const term = req.query.term;
    findInDb(term);
    res.redirect('/search', {
        searchResults: searchResults,
    });
})

async function findInDb(query) {
    const collection = await getDbCollection();
    await collection.find().forEach((item) => {
        console.log(item.artist);
        if (item.artist.includes(query) || item.name.includes(query)) {
            searchResults.push(item);
        }
    })
}

这是可能的还是我必须弄乱我的 html 并在那里使用循环来处理传递的结果?

您的 web 页面可以通过fetch使用 AJAX 向您的服务器发出/search-db API 请求。 您的服务器路由处理程序应该从数据库中获取结果,然后调用res.send()将 JSON 响应发送回客户端,而不是res.redirect()将客户端重定向到新页面。

示例:如何在 Node.js 中使用 Express.js 创建 REST API

此外,不相关的是,您的findInDb function 应该返回搜索结果,而不是将它们放在全局变量( searchResults )中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM