分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

[js]nodejs初探

发布时间:2023-09-06 01:26责任编辑:蔡小小关键词:jsnodejs

url里的path和query-http和url模块

var http = require("http"), ???url = require("url"), ???fs = require("fs");s1 = http.createServer(function (req, res) { ???// res.write("<h1>hello yifei</h1>"); ???// res.end(); ???var urlObj = url.parse(req.url, true), ???????pathname = urlObj['pathname'], //path ???????query = urlObj['query']; //?后面的参数 {}类型 ???console.log(pathname); ???console.log(query); ???res.end();//终结请求});s1.listen(1234, function () { ???console.log("http://127.0.0.1:1234?name=maotai&age=22");});

结果

返回html-fs模块

index.html

<!DOCTYPE html><html lang="en"><head> ???<meta charset="UTF-8"> ???<title>test</title> ???<link rel="stylesheet" href="css/base.css"></head><body><h1>用户登录</h1><form action="/add.html" method="get"> ???<p>用户: <input type="text" name="username"></p> ???<p>密码: <input type="text" name="password"></p> ???<p><input type="submit"></p></form></body></html>

css/base.css

body{ ???background-color: #0086b3;}

node代码

var http = require('http'), ???url = require('url'), ???fs = require('fs');s1 = http.createServer(function (req, res) { ???var urlObj = url.parse(req.url, true), ???????pathname = urlObj['pathname'], ???????query = urlObj['query']; ???console.log(pathname, query); ???if (pathname === "/index.html") { ???????var con = fs.readFileSync("./index.html"); //读取html,返回 ???????res.end(con); ???????return; ???} ???if (pathname === "/css/base.css") { //index.html里会调用css ???????con = fs.readFileSync("./css/base.css","utf-8"); ???????res.end(con); ???????return; ???}});s1.listen("1234", function () { ???console.log("http://127.0.0.1:1234/index.html");});

根据pathname返回不通的url

最简陋的实现(如果html不存在会报错)

var http = require("http"), ???url = require("url"), ???fs = require("fs");s1 = http.createServer(function (req, res) { ???var urlObj = url.parse(req.url), ???????pathname = urlObj['pathname'], ???????query = urlObj['query']; ???pathname = "." + pathname; ???var con = fs.readFileSync(pathname); //根据pathname返回不同的url ???res.end(con); ???return; //代表终结});s1.listen(1234, function () { ???console.log("http://127.0.0.1:1234/index.html")});

处理错误

var http = require("http"), ???url = require("url"), ???fs = require("fs");s1 = http.createServer(function (req, res) { ???var urlObj = url.parse(req.url), ???????pathname = urlObj['pathname'], ???????query = urlObj['query']; ???try { ???????var con = fs.readFileSync('.'+pathname); ???????res.end(con); ???} catch (e) { ???????res.end("request file is not fonund!") ???} ???return;});s1.listen(1234, function () { ???console.log("http://127.0.0.1:1234/index.html")});

处理mime

即不通类型不同的显示,如html css

谷歌浏览器会智能处理一些类型.

var http = require('http'), ???url = require('url'), ???fs = require('fs');s1 = http.createServer(function (req, res) { ???var urlObj = url.parse(req.url), ???????pathname = urlObj['pathname'], ???????query = urlObj['query']; ???var reg = /\.(HTML|CSS|JS|JSON|TXT|ICO)/i; ???var suffix = reg.exec(pathname)[1].toUpperCase(); ???var suffixMIME = 'text/plain'; ???if (reg.test(pathname)) { ???????switch (suffix) { ???????????case "HTML": ???????????????suffixMIME = 'text/html'; ???????????????break; ???????????case "JS": ???????????????suffixMIME = 'text/javascript'; ???????????????break; ???????????case "CSS": ???????????????suffixMIME = 'text/css'; ???????????????break; ???????????case "JSON": ???????????????suffixMIME = 'application/json'; ???????????????break; ???????????case "ICO": ???????????????suffixMIME = 'application/octet-stream'; ???????????????break; ???????} ???} ???try { ???????con = fs.readFileSync('.' + pathname); ???????res.writeHead(200, {'content-type': suffixMIME + ';charset=utf-8'}); ???????res.end(con); ???} catch (e) { ???????res.writeHead(404, {'content-type': 'text/plain;charset=utf-8'}); ???????res.end("file not found") ???}});s1.listen(1234, function () { ???console.log("http://127.0.0.1:1234/index.html");});

[js]nodejs初探

原文地址:https://www.cnblogs.com/iiiiiher/p/8406467.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved