码迷,mamicode.com
首页 > Web开发 > 详细

[js]nodejs初探

时间:2018-02-02 20:19:19      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:app   har   return   node   登录   write   浏览器   cat   inf   

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初探

标签:app   har   return   node   登录   write   浏览器   cat   inf   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!