我是一个节点.js新手,我正在用它创建我的第一个大应用程序(我正在使用express)。当用户加载带有 get 请求的 id 时,我需要让我的网页执行一些 javascript 画布绘制,例如
www.mywebsite.com/page?id=22
我知道我可以用一个简单的
var express = require("express");
var app = express();
app.get('handle',function(request,response){
//request.id
});
但我不知道如何使用该 ID 的要求绘图开始我的网页。互联网上关于快速和获取的每个教程都解释了如何处理获取请求......那么这个问题是关于"接下来会发生什么?
改写:我不确定我应该如何从快递中告诉 html 页面"你需要绘制与此 id 关联的内容",然后将该页面发送回用户。
您可以从params
获取id
,然后根据该 id 返回响应。
var express = require('express');
var app = express();
app.get("/page/:id",function(request, response){
var id = request.params.id;
// do something with id
// send a response to user based on id
var obj = { id : id, Content : "content " +id };
response.writeHead(200, {"Content-Type": "application/json"});
response.write(JSON.stringify(obj));
});
笔记:
您可以使用
/page/:id
创建www.mywebsite.com/page/22
或www.mywebsite.com/page?id=22
之类的 URL,并且您可以使用request.params.id
访问服务器上的 id(输出:22)。使用
response
,您可以write
对服务器的响应。在此示例中,我返回了一个 json 对象。在
writeHead
200 来自 state 表示 OK ,content-type
表示我返回一个 json 对象您可以返回所需的页面或其他内容,这只是一个例子(PoC)。
如果要在请求中传递多个变量,可以通过以下方式传递它:
var emailVar = "someEmail@gmail.com";
var nameVar = "someName";
var url = `/home?email=${emailVar}&name=${nameVar}`;
//Now make the request.
在后端逻辑中,您可以按以下方式检索这些值:
app.get('/home', function(request, response)
{
console.log(request.query.email+" "+request.query.name);
var email = request.query.email;
var name = request.query.name;
response.setHeader('Content-Type', 'application/json');
if(request.query.email)
{
response.send(JSON.stringify({
message: 'Got the email'
}));
}
else
{
response.send(JSON.stringify({
message: 'No email sent'
}));
}
});
此方法对于在后端执行查询操作非常有用。