如何处理 node.js 的 get 请求(express)
How to handle a get request with node.js (express)
我是 node.js 新手,我正在用它创建我的第一个大型应用程序(我正在使用 express)。我需要让我的网页执行一些 javascript canvas-当用户使用 get 请求加载 id 时的绘图,例如
www.mywebsite.com/page?id=22
我知道我可以用一个简单的方法来处理这个问题
var express = require("express");
var app = express();
app.get('handle',function(request,response){
//request.id
});
但我不知道如何使用该 ID 要求的绘图启动我的网页。互联网上关于 express 和 get 的每个教程都解释了如何处理 get 请求......这个问题是关于 "what happens next?"
改写:我不确定如何告诉 html 页面“你需要从 express 中绘制与此 id 关联的内容”然后发送该页面返回给用户。
您可以从 params
获取 id
,然后根据该 ID 对 return 进行响应。
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
响应服务器。在这个例子中,我 return 编辑了一个 j 对象 .
在 writeHead
200 中来自状态,这意味着 OK 和 content-type
意味着我 return 一个 json object
你可以return你想要什么,页面或其他什么,这只是一个例子(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'
}));
}
});
这种方法对于在后端执行查询操作很有用。
我是 node.js 新手,我正在用它创建我的第一个大型应用程序(我正在使用 express)。我需要让我的网页执行一些 javascript canvas-当用户使用 get 请求加载 id 时的绘图,例如
www.mywebsite.com/page?id=22
我知道我可以用一个简单的方法来处理这个问题
var express = require("express");
var app = express();
app.get('handle',function(request,response){
//request.id
});
但我不知道如何使用该 ID 要求的绘图启动我的网页。互联网上关于 express 和 get 的每个教程都解释了如何处理 get 请求......这个问题是关于 "what happens next?"
改写:我不确定如何告诉 html 页面“你需要从 express 中绘制与此 id 关联的内容”然后发送该页面返回给用户。
您可以从 params
获取 id
,然后根据该 ID 对 return 进行响应。
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
响应服务器。在这个例子中,我 return 编辑了一个 j 对象 .在
writeHead
200 中来自状态,这意味着 OK 和content-type
意味着我 return 一个 json object你可以return你想要什么,页面或其他什么,这只是一个例子(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'
}));
}
});
这种方法对于在后端执行查询操作很有用。