node入门笔记

时间:2021-09-25 00:03:23

看了《node入门》http://www.nodebeginner.org/index-zh-cn.html。有些疑难点记下来。

在导出模块的时候给出的代码是这样的

 var http = require("http");

 function start() {
function onRequest(request, response) {
console.log("Request received.");
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
} http.createServer(onRequest).listen(8888);
console.log("Server has started.");
} exports.start = start;

  可以发现exports.start = start;但是不知道哪一个start是内部函数名哪一个是外部引用的名字。做了如下修改

var http = require("http");

function starrt() {
function onRequest(request, response) {
console.log("Request received.");
response.writeHead(200, {"Content-Type": "text/plain"});
response.write("Hello World");
response.end();
} http.createServer(onRequest).listen(8888);
console.log("Server has started.");
} exports.start = starrt; //starrt 为内部函数名 star为外部调用的方法名

  发现exports.外部调用名  =  内部函数名;

关于url方法的调用

发现在文章中有 pathname = url.parse(req.url).pathname;

查了下API 知道 req.url  可以拿到所有的url

例如:http://localhost:8888/start?foo=boo&hello=world   req.url = start?foo=boo&hello=world,即域名以后的路径。

我决定把url.parse(req.url)输出看看是什么

console.log(url.parse(req.url))

//以下为输出
{ protocol: null,
slashes: null,
auth: null,
host: null,
port: null,
hostname: null,
hash: null,
search: '?foo=boo&hello=world',
query: 'foo=boo&hello=world',
pathname: '/start',
path: '/start?foo=boo&hello=world',
href: '/start?foo=boo&hello=world' }

querystring.parse()这个方法可以把请求参数的键值对转换成json,

postData = user=asdsad&passwd=qweq;

querystring.parse(postData)之后变成 : { user: 'asdsad', passwd: 'qweq' };