NodeJS 入门 (一)
NodeJS没有web容器的概念
NodeJS需要对每一个请求进行路由处理,包括脚本,样式,图片等等任何请求
const http = require('http');
const server = http.createServer(function(req, res) {
res.writeHead(200, {'content-type': 'text/html;charset=utf-8'});
res.end('<h1>hello nodejs</h1>');
})
server.listen(8080, function() {
console.log('ready!!!');
})
NodeJS根据请求URL来判断返回的资源
const http = require('http');
const fs = require('fs');
const server = http.createServer(function(req, res) {
if(req.url === '/test') {
fs.readFile('./test.html', function(err, data) {
res.writeHead(200, {'content-type': 'text/html;charset=urf-8'});
res.end(data);
});
} else if(req.url === '/home') {
fs.readFile('./home.html', function(err, data) {
res.writeHead(200, {'content-type': 'text/html;charset=utf-8'});
res.end(data);
})
} else {
res.writeHead(404, {'content-type': 'text/html;charset=utf-8'});
res.end('404 NOT FOUND');
}
})
server.listen(8080, function() {
console.log('ready!!!');
})
HTTP模块
必须使用res.end()否则服务器会一直处于挂起状态
在res.end()之前可以使用res.write()来想浏览器端传输信息
const http = require('http');
const server = http.createServer(function(req, res){
res.writeHead(200, {'content-type': 'text/html;charset=urf-8'});
res.write('<h1>first title</h1>');
res.write('<h1>second title</h1>');
res.end();
})
url模块
本模块专门用来处理url地址,基本用法如下
const url = require('url');
url.parse("http://user:pass@host.com:8080/p/a/t/h?query=string#hash");
{
protocol: 'http:',
slashes: true,
auth: 'user:pass',
host: 'host.com:8080',
port: '8080',
hostname: 'host.com',
hash: '#hash',
search: '?query=string',
query: 'query=string',
pathname: '/p/a/t/h',
path: '/p/a/t/h?query=string',
href: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'
}
浙公网安备 33010602011771号