node开发基础

学习node开发需要准备node环境,具体可以百度

学习node开发的好处

1,可以使用JavaScript语法开发后端应用
2,一些公司需要前端工程师掌握node开发
3,生态系统活跃(使用者较多),有大量的开源库可以使用
4,前端开发工具大多基于Node开发

Node.js基础语法

所有的ECMAScript语法(DOM和BOM不算)再Node环境都可以使用
再node环境下执行代码,使用Node命令执行后缀为**.js**文件即可

Node.js全局对象global

浏览器中的全局对象是window,再Node中全局对象是global
Node中全局对象有以下方法,可以在文件中任何地方调用,global和window一样可以省略

console.log()
setTimeout()    setInterval()
clearTimeout()  clearInterval()

Node.js中模块化开发规范

1.Node.js规定一个JavaScript文件就是一个模块,模块内部定义的变量和函数在默认的情况下外部无法得到
2.模块内部可以使用exports对象进行成员导出,使用require方法导入其他模块

let version =1.0;
const sayhi=name=>`hello ${name}`;
exports.version=version;   //exports点后面的名字自己可以随便取,=右边的是你要导出的成员
exports.sayhi=sayhi;

在另一个文件中导入模块时后缀可以省略(.js)

const a=require(文件路径);  //然后a就有了上面那个文件导出来的方法了
console.log(a.version)  //1.0
console.log(a.sayhi('xiaoming'));  //hello xiaoming 

3.另外一种导出方式,module.exports.name

exports.sayhi=sayhi;
module.exports.sayhi=sayhi;    //一般情况下这两种导出模式并无区别
//因为默认它们两个指向的都是同一个地址

但是如果module.exports改变里地址,则以module.exports导出的为准,exports导出的无效

读取文件的操作

读取文件需要先导入 fs 的模块,这个文件是node会生成的,我们只需直接导入就行
const fs=require('fs');
这样导入即可
使用:

//直接使用fs调用readFile就行,有3个参数分别是:文件路径,编码类型,回调函数
fs.readFile('01-helloWord.js','utf8',function(err,doc){  
				//在这个回调函数里有两个参数,err是存放读取文件成功还是失败的,
				//读取成功err为null,doc是文件的内容
				//读取失败err为一个对象,doc为undefined
	console.log(err); 
	concole.log(doc);
})

写入文件的操作

第一步与读取文件相同,需要先导入fs模块
使用方法:

const fs=require('fs');
// 三个参数,文件路径,要写入的内容,回调函数
fs.writeFile('../demo.txt','即将写入内容',err=>{  //这里一般只有一个参数err
//err的值与写入成功失败的值相同
    if(err==null){
        console.log('写入成功');
        return;
    }
    console.log('文件写入失败');
});

获取路径的操作

在刚刚的代码中,我写的几乎是相对路径 ,在控制命令台出也是在对应的文件的路径下所打开的,但是在一般的网站上,是不能这样用的,因为在被人的电脑上默认是在他们的根目录下打开的,所以我们需要获得对于我们更为靠谱的绝对路径,在node中提供了一个__dirname来帮助我们获取绝对路径,
使用方法:需要先导入一个path的模块

const path=require('path');  //导入模块
const fs=require('fs');   //导入文件模块
const finialPath=path.join(__dirname,'demo.txt');    //获取当前文件的绝对路径,并与所要写入的文件进行拼接
console.log(finialPath);  //这里会打印出  绝对路径\demo.txt
fs.writeFile(finialPath,'通过路径拼接我有写入了',err=>{  //写入操作
    if(err==null){
        return;
    }
    console.log('写入失败')
});

关于package.json的说明

使用npm init -y命令生成package.json文件
这是一个**项目描述文件,**记录了当前项目信息,例如项目名称、版本、作者、github地址、当前项目依赖了哪些第三方模块等
使用命令自动创建后文件会有以下的内容

{
  "name": "gulp-demo",   //项目名称
  "version": "1.0.0",   //当前版本
  "description": "",      //项目的描述,通过此选项可以让别人了解大致信息
  "main": "gulpfile.js",   //项目主文件
   "scripts": {     //命令的别名,简写命令,使用只需npm run name就行了
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],    //关键字
  "author": "",   //作者
  "license": "ISC"   //协议,isc是开放协议
}

如果你的项目安装了项目依赖,他还会给你自动生成dependencies属性,它就是描述你这个项目使用的那些项目依赖,比如使用npm install 包名下载的就是下面这样的
"dependencies":{'gulp-babel':"^8.0.0"}这就是说你当前项目依赖了gulp-babel,版本为^8.0.0.
如果你的项目安装了开发依赖,就是开发人员在开发阶段索要使用的依赖,使用npm install 包名 --save-dev下载的它就会自动生成并添加到devDependencies
"devDependencies": {},

package.json的作用

1.因为node_modules文件夹的问题,当文件夹以及文件过多过碎,当我们将项目整体拷贝给被人的时候,传输速度会很慢,如果使用package.json文件,就可以不用把node_modules发给别人了,在别人那里到时候就直接使用npm install就可以帮他把全部的愿依赖下载好

下载全部依赖
npm install
下载项目依赖
npm install --production

2.复杂的模块依赖关系需要被记录,确保模块的版本和当前保持一致,否则会导致当前项目会报错

当我们下载第三方模块文件的时候,npm会自动给我们下载另外一个文件 package-lock.json

package-lock.json文件的作用

1,锁定包的版本,确保再次下载时不会因为报的版本不而产生问题
2,加载下载速度,因为该文件中已经记录了项目所依赖的第三方包的树状结构和包的下载地址,重新安装时只需下载即可,不需要做额外的工作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值