从服务器端向客户端发送响应 (Node.js, javascript)
Send a response from the serve-side to client-side (Node.js, javascript)
基于以下结构,我想将我的响应(简单数组 ["Tom", "Bob", "Sam"])从 server.js 发送到 index.js 是吗可能吗?
server.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);
frontend/index.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 中的代码将 运行,类似于页面脚本中发生的事情。
您需要等到提取完成后再对结果数据执行任何操作,但是如果您将提取移动到 index.js 中,您可以使用数据调用文件中的其他函数,或者在 fetch 调用之外声明一个变量,让 index.js 中的其他函数使用它。
基于以下结构,我想将我的响应(简单数组 ["Tom", "Bob", "Sam"])从 server.js 发送到 index.js 是吗可能吗?
server.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);
frontend/index.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 中的代码将 运行,类似于页面脚本中发生的事情。
您需要等到提取完成后再对结果数据执行任何操作,但是如果您将提取移动到 index.js 中,您可以使用数据调用文件中的其他函数,或者在 fetch 调用之外声明一个变量,让 index.js 中的其他函数使用它。