• Node.js 用回调处理一次性事件


    为了在程序中演示回调的用法,我们来做一个简单的HTTP服务器,让它实现如下功能:

    • 异步获取存放在JSON文件中的文章的标题;
    • 异步获取简单的HTML模板;
    • 把那些标题组装到HTML页面里;
    • 把HTML页面发送给用户。

    最终结果如下所示:

    一个包含文章标签的列表:titles.json:

    [
        "Kazakhstan is a huge country... what goes on there?",
        "This weather is making me craaazy",
        "My neighbor sort of howls at night"
    ]

    用来渲染博客标题的HTML模板:template.html:

    <!doctype html>
    <html>
        <head></head>
        <body>
            <h1>Latest Posts</h1>
            <ul><li>%</li></ul>
        </body>
    </html>

    运行程序:

    var http    = require('http');
    var fs      = require('fs');
    
    var server = http.createServer(function (req, res) {
        getTitles(res);
    }).listen(8000, "127.0.0.1");
    
    function getTitles(res) {
        fs.readFile('./titles.json', function (err, data) {
            if (err) return hadError(err, res);
            getTemplate(JSON.parse(data.toString()), res);
        });
    }
    
    function getTemplate(titles, res) {
        fs.readFile('./template.html', function (err, data) {
            if (err) return hadError(err, res);
            formatHtml(titles, data.toString(), res);
        });
    }
    
    function formatHtml(titles, tmpl, res) {
        var html = tmpl.replace('%', titles.join('</li><li>'));
        res.writeHead(200, {'Content-Type': 'text/html'});
        res.end(html);
    }
    
    function hadError(err, res) {
        console.log(err);
        res.end('Server Error');
    }
  • 相关阅读:
    html框架
    head标签
    项目报错,tomcat中引起
    Eclipse中点击小猫提示Tomcat settings should be set in Tomcat Preference Page
    同一台电脑上安装两个tomcat服务器
    Java排序算法
    格式化系统日期
    九九乘法表
    Java实现给定字符串的倒序输出
    Eclipse警告:The serializable class XXX does not declare a static final serialVersionUID field of type long
  • 原文地址:https://www.cnblogs.com/sumuzhe/p/7466329.html
Copyright © 2020-2023  润新知