节点JS通过URL发送数据

最近我开始用Node JS进行编程,发现它是一个惊人的php替代品。 在PHP中,我用来发送与URL中的数据请求。

类似于: http : //sample.com/public.php? x= helloworld

如何在Node JS中执行类似这样的事情,或者有没有更好的方法来发送数据到节点,而不像在上面的例子中使用url。

此外,我已经注意到,在某些情况下像stackoverflow,查询是不同的,不包括文件名

像/ public?=而不是/public.php?=

这是如何实现的,我一直认为这是与REST有关的东西。 另外,如果你有答案,你可以引导我,如果可以用Node来完成的话,一些学习资源也可以帮助你。

使用预先存在的模块作为您的Web服务器可能会好得多。 你可以手动设置一个,但你必须知道很多潜在的边缘情况,真正理解Web服务器。 节点中的大多数人使用快递 。 在节点中,与任何服务器端语言一样,可以通过几种方式传递数据。 查询string是一个。 你也可以直接在URL中join一些参数(比如“/ users / 12”,其中12是用户ID)。 根据请求的types,可以将数据放在请求的主体中。 你也可以通过cookie。 这些不是特定于节点的。 解释如何在这样的职位expression工作将是疯狂的,所以我只是给你一个简短的例子与你的示例路线匹配的路由处理程序可能看起来像:

 var express = require('express'); var app = express(); app.get('/public', function(req, res, next) { // Get the value from the query string. Express makes the query // available as an object on the request parameter. var x = req.query.x; // Execute your main logic doSomethingWithX(x); // Send a response res.status(200).json({ foo: 'bar' }); }); 

使用REST API的最经常的方法

req.query

 // GET /search?q=foo+bar req.query.q // => "foo bar" // GET /phone?order=desc&phone[color]=black&shoe[type]=apple req.query.order // => "desc" req.query.phone.color // => "black" 

req.params

 // GET /user/william req.params.name // => "william" 

req.body(用于表单数据)

 // POST /login req.body.username // => "william" req.body.password // => "xxxxxx"