繁体   English   中英

从服务端向客户端发送响应(Node.js、javascript)

[英]Send a response from the serve-side to client-side (Node.js, javascript)

基于下面的结构,我想将我的响应(简单数组 ["Tom", "Bob", "Sam"])从 server.js 发送到 index.js 有可能吗?

服务器.js

app.get("/*", (req, res) => {
    res.sendFile(path.resolve(__dirname, "frontend", "index.html"));
});

app.post('/settings', function(req, res, next){
res.status(200).json({
                ok: true,
                data: ["Tom", "Bob", "Sam"]
            }); 
});

app.listen(process.env.PORT || 3000);

前端/索引.html

    <nav class="nav">
        <a href="/">Dashboard</a>
        <a href="/settings">Settings</a>
    </nav>
    <div id="app"></div>
    <script type="module" src="/static/js/index.js"></script>

/frontend/static/js/index.js

document.querySelector("#app").innerHTML = await view.getHtml(); // load page.html
//console.log(data);

/frontend/static/html/page.html

        <button id="btn">Save</button>
       <script>
     
   var btn = document.getElementById("btn");
btn.addEventListener("click", function() {

  fetch('/settings', {
    method: 'POST', 
           headers: {
            "Content-Type": "text/plain"
        },
    body: JSON.stringify(anotherData), 
    headers: {
      'Content-Type': 'application/json'
    }
  }).then(response => response.json())
    .then(function(response) {
        if (response.ok) {
            console.log('got data: ', response.data);
        }
    }).catch(function(error) {
        console.log(error);
    });
  

}, false);
   </script>

感谢您的评论 - 我相信我明白您现在的要求。

如果您想检索 index.js 文件中的数据,处理此问题的最佳方法可能是将您的请求代码移动到 index.js。 从您的 page.html 文件中删除标签,然后将其放在 index.js 中。 index.js 中的代码将在页面加载后运行,类似于页面脚本中发生的情况。

您需要等到您的 fetch 完成后再对结果数据执行任何操作,但是如果您将 fetch 移动到 index.js 中,您可以使用数据调用文件中的其他函数,或者在您的 fetch 之外声明一个变量调用以让 index.js 中的其他函数使用它。

暂无
暂无

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

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