http服务
 
let server = http.createServer(function(req,res){
     
});
 
监听:
server.listen(8080);
 
request       请求
response     相应
 
编辑器配置相应的环境
sublime: 
依次打开  Tools --> Build System --> new Build System 中文:工具 --> 编译系统 --> 新建编译系统
输入以下代码,保存配置文件,然后 使用快捷键 Ctrl + b 开启实时node监听
{

    "cmd": ["node", "$file"],

    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",

    "working_dir": "${project_path:${folder}}",

    "selector": "source.js",

    "shell": true,

    "encoding": "utf-8",

    "windows": {

        "cmd": ["node", "$file"]

    }

}
atom 编辑器
下载对应插件  script
 
Ctrl + shift + b  实时监听node指令
 
 
 
res.write();     向前台输出
res.end();       结束输出
 
req.url        请求的url      输出   请求的url + favicon.ico
     facicon.icon   是chrome自己请求的
<link rel= "shortcut icon" href="">
 
const http = require('http');
let server = http.createServer(function(request, response){
console.log(req.url);
switch(req.url) {
case '1.html':
res.write('');
break;
case '2.html':
res.write('');
break;
default:
res.write('');
break;
};
console.log('被请求了');
// res.write();
res.end();
});
server.listen();
http--模块
 
文件操作 : fs模块(系统自带模块)  Files System
     
客户端  ---- 服务器----磁盘----服务器----客户端
 
异步 vs 同步
异步: 多个操作可以同时进行,前一次的操作每完成,后一次的操作也能开始
异步: 一次一个操作
 
读文件:
// fs.readFile(文件名, 回调函数 function(err, data){});     
fs.readFile();
 
data读取结果
<buffer  原始的二进制数据 > 
 
const fs = require('fs');

fs.readFile('1.txt', function(err, data){
if(err) {
console.log('读取失败');
}else {
console.log(data.toString());
}
});
写文件
// fs.writeFile(文件名, 内容, 回调函数 function(err){ });
fs.writeFile('1.txt', 'jason is a hero!', function(){
     
});
const fs = require('fs');

fs.writeFile('1.txt', 'jason is a hero!', function(err){
console.log(err);
});
     
总结:
    注意回调函数是异步函数,注释的res.end();的位置是不对的,fs文件读取结束后才能分析原因并且结束相应,而不应该在回调之前先结束相应再执行fs的回调
 
// 引入http模块
const http = require('http');
// 引入fs模块
const fs = require('fs'); // 创建一个连接
let server = http.createServer( (req, res) => {
// 指定静态资源
let file_name = './www' + req.url;
fs.readFile(file_name, (err, data) => {
if(err) {
res.write('');
} else {
res.write(data);
}
res.end();
});
// res.end();
}); // 监听端口
server.listen();

nodejs学习笔记一( sublime、atom开发环境,http模块,fs模块的初识)的更多相关文章

  1. angularjs2 学习笔记(一) 开发环境搭建

    开发环境,vs2013 update 5,win7 x64,目前最新angular2版本为beta 17 第一步:安装node.js 安装node.js(https://nodejs.org/en/) ...

  2. 【webpack学习笔记】a04-建立开发环境

    开发环境就是在开发过程中为了方便配置的环境,生产环境就是开发完成即将上线的情况. 好了,说了句废话,切入正题. 在开发时,打包后的文件压缩成一团,报错调试的时候傻眼了有木有?每次做出修改需要到浏览器查 ...

  3. 【深度学习笔记】Anaconda及开发环境搭建

    在学习了一段时间台大李宏毅关于deep learning的课程,以及一些其他机器学习的书之后,终于打算开始动手进行一些实践了. 感觉保完研之后散养状态下,学习效率太低了,于是便想白天学习,晚上对白天学 ...

  4. 【Vue 学习笔记 一、Vue开发环境搭建】

    搭建Vue的开发环境 1.首先安装Nodejs  (因为我的系统是Windows的所以就选择第一个了,这个看个人的开发环境) 下载好后,然后一路确定,如果有更改安装目录的需求,就自己切换安装目录,由于 ...

  5. Android学习笔记(一)开发环境搭建

    Android开发环境搭建 安装JDK 1.如果你还没有JDK的话,可以去这里http://www.oracle.com/technetwork/java/index.html ,接下来的工作就是安装 ...

  6. ISD9160学习笔记02_搭建NuMicro开发环境

    开发环境这边没什么好说的,烧写玩了玩录音的测试程序. 1. 烧写工具 昨晚先尝试了下烧写工具(NuMicro ICP Programming Tool 1.30.6491.exe),板子自带了烧写器, ...

  7. Python 学习笔记(二)开发环境的搭建

    安装Python windows 下安装: 下载地址:https://www.python.org/downloads Python的版本 3.x 是趋势 2.x 还在被大量使用 至于使用2.x 还是 ...

  8. 《objective-c基础教程》学习笔记 (一)—— 开发环境配置和简单类型输出

    懒惰是富有最大的敌人,再不前进,我们就out了.最近工作比较轻松,不是很忙.于是想晚上下班回家学习点新东西.看着苹果大军的一天天壮大,心里也是痒痒的.于是就想先系统的学习下Objective-C,为之 ...

  9. C语言学习笔记(一) 开发环境的搭建

    写这个系列的原因是因为最近在学习C语言,记录博客会让自己能够更好的掌握学习到的东西.编程贵在坚持,每天改变一丢丢! C语言开发两个软件,一个是文本编辑工具,Notepad++或者是EditPlus都可 ...

  10. Activiti学习笔记1 — 下载与开发环境的配置

    一.下载 JDK下载URL: Tomcat下载URL:http://tomcat.apache.org/ Eclipse下载URL:http://www.oracle.com/technetwork/ ...

随机推荐

  1. xml写入

    XmlDocument xmlDocument=new XmlDocument(); XmlElement root = xmlDocument.CreateElement("", ...

  2. C#Encoding

    1.Encoding (1).如何生成一个Encoding即一种编码 Encoding位于System.Text命名空间下,是一个抽象类,它的派生类如下图: 要实例化一个Encoding一共有以下两种 ...

  3. WPF INotifyPropertyChanged 通过特性减少代码量

    在很多地方需要用上INotifyPropertyChanged的接口,MVVM模式,List等集合都会用到. 通常我们使用 protected void OnChange(PropertyChange ...

  4. luoguP5074 Eat the Trees

    https://www.luogu.org/problemnew/show/P5074 插头 $ dp $ 入门题 如果你还不会插头 $ dp $ 请右转 洛谷插头dp题解 虽然是入门题但还是逃不过分 ...

  5. SQL注入不简单?那是你没有懂它的原理~

    我们真的了解SQL注入吗? 不管用什么语言编写的Web应用,它们都用一个共同点,具有交互性并且多数是数据库驱动.在网络中,数据库驱动的Web应用随处可见,由此而存在的SQL注入是影响企业运营且最具破坏 ...

  6. [ActionScript 3.0] 记录几个ByteArray 十六进制 String等相互转换的方法

    /** * 通过hax数据返回ByteArray * @param hax 格式 "AA5A000100FF" */ private function getHax(hax:Str ...

  7. [CentOS] 7 不执行文件 /etc/rc.d/rc.local

    chmod 0755 /etc/rc.local systemctl enable rc-local.service --now systemctl restart rc-local.service

  8. linux中文件句柄数问题

        问题描述:  有时候业务比较繁忙时,就会出现如下问题 too many open files:顾名思义即打开过多文件数.不过这里的files不单是文件的意思,也包括打开的通讯链接(比如sock ...

  9. iOS学习笔记(6)——翻译苹果文档About Windows and Views

    About Windows and Views 关于窗口和视图 In iOS, you use windows and views to present your application’s cont ...

  10. 【2】JMicro微服务-Hello World

    如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl 1. 首先完成 JMicro微服务-RPC体验 的1到5步. 按默认方式启动ZK及Redis: JDK需要Java8及以上. ...