nodejs学习笔记一( sublime、atom开发环境,http模块,fs模块的初识)
2024-08-29 10:30:09
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();
最新文章
- SQL Server内存遭遇操作系统进程压榨案例
- C#多线程之线程同步篇2
- html传参数
- SVN更新时,校验和不匹配
- WdatePicker 没有权限 不能执行已释放 Script 的代码
- Hierarchical Softmax
- 2013 ACM-ICPC长沙赛区全国邀请赛——Bottles Arrangement
- Android Studio使用SVN,与eclipse共同开发。
- Java IO 和 NIO
- [再寄小读者之数学篇](2014-06-20 Beta 函数)
- Redis学习-string数据类型
- python3 与 Django 连接数据库报错:ImportError: No module named &#39;MySQLdb&#39;
- 使用Buildozer部署Kivy到移动设备上
- Ubuntu使用操作记录/笔记
- 基于无锁队列和c++11的高性能线程池
- Health Endpoint Monitoring模式
- Scala进阶之路-Scala函数篇详解
- weblogic 反序列化补丁绕过漏洞的一个批量检测shell脚本(CVE-2017-3248 )
- hdu 1853 Cyclic Tour 最大权值匹配 全部点连成环的最小边权和
- CF 96 D. Volleyball
热门文章
- jmeter测试mysql数据库之JDBC请求
- ADO.NET操作SQL Server:数据库操作类(已封装)
- html中常用的标签元素
- WebBrowser控件支持WebSocket
- AppDomain.CurrentDomain.BaseDirectory项目目录相关操作
- 安卓 往SD卡里写文件不能及时更新的问题
- Gogland编译LiteIDE工程需要注意问题!
- KindEditor的使用
- video视频内容填充整个播放空间方法
- 关于Tomcat控制台乱码解决办法___ 解决 IntelliJ IDEA Tomcat 控制台中文输出乱码问题