node基础服务器搭建

1.arguments: 在函数调用时, 会自动在该函数内部生成一个名为 arguments的隐藏对象。 该对象类似于数组, 但又不是数组,而是Object对象。可以使用[]获取函数调用时传递的实参。

2.当函数被调用时,它的arguments.callee对象就会指向自身,也就是一个对自己的引用。
由于arguments在函数被调用时才有效,因此arguments.callee在函数未调用时是不存在的(即null.callee),且引用它会产生异常。

3.arguments.length 是实参长度,arguments.callee.length 是形参长度,由此可以判断调用时形参长度是否和实参长度一致。

1.node特征

node.js -----本质就是javascript

​ -----文件也就是 .js

js 客户端

node.js 服务端 报错优先

node 针对文件进行修改后,需要重新运行文件

node 运行文件 可以省略后缀 .js 但是必须有文件名

退出:C+C

运行文件指令:node 文件路径

优点:

  • 异步非阻塞的I/O
  • 特别适用于I/O密集应用
  • 事件循环机制
  • 单线程
  • 跨平台

一次请求一次响应

注意:node没有window对象,也就意味着不能使用 $ window的方法

2.commonjs模块化

1、模块化:将一个大的功能拆分为一个个小的模块,通过不同模块的组合来实现一个大功能

2、commonjs:cjs 模块化系统

​ 通过 require()函数 引用不同的模块,接受的值为对象

​ 模块分2种:外部模块 ---- (自定义模块)非node.js自带模块

​ 内部模块 ---- node.js自带模块(引用时不需要写路径)

​ 在node_modules里面的模块通过require方法调用的时候,不需要写路径

​ exports----暴露

​ require----引入

​ module-----模块

​ __filename----返回当前模块文件被解析过后的绝对路径

​ __dirname----返回当前模块文件解析过后所在的文件夹(目录)的绝对路径

3、

​ 在node中一个js文件就是一个模块

​ 在node中每一个模块中的代码都是运行在一个独立的函数中的

​ 验证:console.log(arguments.callee.toString());

​ 1、(不推荐)内部的变量和方法 需要通过exports.name=xxx 直接导出

​ 2、(推荐) moudle.exports.name = {}

全局定义变量 通过global关键字 global.name = xxx 不推荐使用

3.npm

下载 npm install xxx ----缩写 npm i xxx

卸载 npm uninstall xxx

npm 包管理工具

npm init 初始化包管理

npm i 安装package.json所带的依赖包

npm install xxx@版本号 -S-D 下载特定的版本

—save ------ -S 生产依赖

—dve ------ -D 开发依赖

​ -g 全局安装

npm search / s 包名

搜索指定的包

npm install / i 包名

安装指定的包

npm install / i 包名 --save

安装指定包并添加到项目的生产依赖中

npm install / i 包名 --save-dev

安装指定包并添加到项目的开发依赖中

npm install / i 包名 -g

全局安装(全局安装都是安装一些工具)

npm install / i

安装项目中的所有依赖

npm remove / r 包名

删除指定的包

4.yarn

yarn 更快更稳

yarn add xxx 下载包

yarn global 全局安装

yarn --version

yarn init //生成package.json !!!注意生成的包名不能有中文,大写

yarn global package (全局安装)

yarn add package (局部安装)

yarn add package --dev (相当于npm中的–save-dev)

yarn remove package

yarn list //列出已经安装的包名

yarn info packageName //获取包的有关信息

yarn //安装package.json中的所有依赖

后缀 -lock.json 为npm、yarn安装包的产物

3个buffer 为一个中文

5.三大系统

fs 文件系统

path 路径系统

  • path.join() ------ 返回由特定分隔符把全部给定的path片段连接到一起并规范化生成的路径
  • path.resolve ------ 把一个或多个路径片段的序列解析为一个绝对路径

http 服务器系统

引用 require

打开 open

读取 readFile

readFileSync

写入 writeFile

wrirteFileSync

关闭 close

// 引用
let fs = require('fs')

文件写入
同步方法:fs.writeFileSync(file, data[, options])
fs.writeFileSync('../a.txt', '我是被node添加的文件a')
异步方法:fs.writeFile(file, data[, options], callback)
console.log(1);
fs.writeFile('../b.txt', '我是被node添加的文件b1', function () {
    console.log('写入成功1');
    fs.writeFile('../b.txt', '我是被node添加的文件b2',{flag:'a'}, function () {
        console.log('写入成功2');
    })
})
console.log(2);

var ws = fs.createWriteStream('../b.txt',{flags:'w'});
ws.once('open', function (error,data) {
    if (error) {
        console.log(error);
    }
    console.log(data);
})
// 创建服务器
const http = require('http')
// req---request 请求     res---response 响应
const server = http.createServer((req, res) => {
    // 响应头-----发送浏览器 解析
    res.writeHead(200,{'Content-Type':'text/javascript; charset=utf-8'})
    // 发送响应头
    res.end('我是老蔡12123')
})
// 监听是否成功  8000: 为端口
server.listen(8000, function () {
    console.log('服务器创建成功');
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值