美文网首页
2016-11-22

2016-11-22

作者: 不系流年系乾坤 | 来源:发表于2016-11-22 20:46 被阅读21次
    fs.readFile('./blogs/test.md', function (err, data) {
        if (err) res.send(err);
        res.send(data);
    });
    

    编码完工~切换到终端,输入 nodemon app.js

    哦对了,强烈推荐一个小工具 nodemon 。一句话简介:全局安装了nodemon后,我们可以通过nodemon xxx.js的方式启动nodejs程序,而在此方式下启动的程序会自动侦测与本程序相关的文件,随时自动重启进程以反映最新的变化。实乃nodejs开发debug过程中必备利器

    言归正传,我志得意满的打开chrome浏览器访问localhost:3000,意料中的文字却没有出现,反而弹出了一个文件下载询问框。shit!谁告诉我send()方法会自动推定Content-Type的!?打开网络侦测一看,果不其然,返回的Content-Type是 application/octet-stream。(经测试,在FireFox中同样提示下载文件,有点搞笑的是,IE11倒是老老实实的直接在页面显示了文件内容...IE大哥你怎么老跟别人不一样啊...)

    Well~我重新翻阅了nodejs的文档,对于fs.readFile(path, callback (err, data))的解释最后有一句话:

    If no encoding is specified, then the raw buffer is returned.

    得得~这就是看文档不仔细的后果。查阅上文表格可见,buffer对应的content-type确实是application/octet-stream来着,修改代码:

    fs.readFile('./blogs/test.md', 'utf-8', function (err, data) {
        if (err) res.send(err);
        res.send(data);
    });
    

    相关文章

      网友评论

          本文标题:2016-11-22

          本文链接:https://www.haomeiwen.com/subject/gscmpttx.html