前端菜鸟学node.js初体验(一)

如今,nodejs如此之火,让我这个打算从事前端开发的小白,也忍不住要学习一下,然而刚刚接触nodejs,就深深的喜欢上了这个语言。

下面我将分享一下我最初学习nodejs时的总结的学习经验,也是总结一下近期学习的知识,还会总结我在学习中遇到的困难,又是如何解决的。希望对大家有用。

我学习nodejs是从阅读《了不起的nodejs:将javascript进行到底》这本书开始的,这本书对于入门来说还是很不多的,不过因为nodejs更新的比较块(或者说这本书版本比较老),书中的很多示例代码并不能很好的运行,或者就是错误的。身边没有懂node的大神,这确实让一个新手很是头疼。但是需要困难还是要解决的,所以有错误就找百度喽,或者干脆看开发文档。如果百度都解决不了的话,建议不要纠结一个问题,这样很浪费时间的,也不会解决什么。最好还是把问题标记上,在以后的学习或者遇到了哪些大神再解决,是再好不过了。

以上是我学习时总结的学习经验,如果你觉得有用,就记下,如果没用,略过就可以了。

下面说说nodejs的一些基础知识吧。

刚开始学习nodejs不是从哪里下手,只是看着书中的解释和示例,一点点的把代码敲一遍,虽然不是很懂,但还是亲手打一遍。慢慢的,有一些概念就自然的记在了脑子里。

1.nodejs的三大特点
nodejs中有一些概念非常重要,比如nodejs的三大特点:非阻塞I/O,循环监听,事件驱动

这三个特点,我的解释并不怎么好,所以还是不要误导他人了,不过网上的很多解释简单易懂,一看便可以理解。

2.npm包管理工具
还有就是模块的理解,在nodejs中我们一般通过npm指令进行安装,npm是安装的包管理工具,通过安装nodejs程序便可以安装npm工具,通过指令:

$npm -version

这里写图片描述
可以查看npm的版本,如果有版本提示,则说名npm安装成功,若提示不是内部或在不命令,可能需要配置npm环境变量,一般来说安装了nodejs后node和npm两个指令的环境变量都是自动配置好的。如果你不会配置,也没有关系,网上会有很多配置i教程。

3.安装模块
我们通过 ’ $npm install 模块名 ’ 可以安装相应的模块,比如:

$npm install express@版本号

此命令可以在文件目录下安装本地模块,什么意思?你把nodejs程序安装到了c盘,但你想把项目放到d盘,这样就需要安装模块安装到d盘的项目目录下,当然在导入模块时引入全局模块也是可以的,但把东西放在一起还是比较符合正常的做法。后面的“@版本号”如果不加也是可以的,这样应该会默认最新的版本。

在命令的后面加 “-g”可以安装全局模块。(位置可以在install后面,也可以在express后面)

$npm install -g express@版本号

就是放在安装nodejs的目录下的node_modules文件夹下。
这里写图片描述

然而当你用这个指令安装全局模块的时候一定会有这样一个问题。
这里写图片描述

当然,我的电脑中已经安装了mysql模块,然而即使没有安装,也可能会有这样的问题,刚开始运行的好好的,后来就一堆错误,还看不懂。这时不要着急,将你的命令提示符用管理员权限去运行,然后在运行命令,就万事大吉了。这也是在网上找了好久才找到的方法,然而仔细想想确实如此,当我们往c盘粘贴或者删除文件时,系统会提示你,需要提供管理员权限才可以执行某些操作,想到这个,我想你就会恍然大悟了。

4.引入模块
说完了安装模块,下面我们就该用它。在文件中引入模块十分的简单,

var mysql = require('mysql');

没错,就是这样的简单,我们就成功的导入了模块。

模块有绝对模块和相对模块之分,上面的代码是引入绝对模块的写法,就是直接通过名字来引入模块,无须添加路径名。

var mysql = require('./mysql');

这里引入的是相对模块,require将指向一个相对工作目录中的js文件,加 ‘./’就可以。

引入了模块该怎么用?默认情况下,每个模块会暴露一个对象,比如上面我们导入了mysql模块,并且赋给了我们定义的mysql,这个var 出来的mysql就是一个mysql模块暴露出来的对象,这个对象可能会有一些属性和方法,我们直接mysql.property/mysql.somefunction()就可以使用。

有时候我们需要自己写一些模块给别人用,但是别人直接赋值粘贴我们写的代码到自己的文件中,会出现许多问题。这时我们依靠module和exports这两个全局变量来将我们写的一些方法暴露出来。

例如:

module_a.js(模块)
exports.name = 'join';
exports.data = 'this is some data';
exports.add = function(a,b){
    return a+b;
}
index.js(测试文件)
var a = require('./module_a');
console.log(a.name);
console.log(a.data);
console.log(a.add(1,2));

输出:
join
this is some data
3

这时比较简单的用法,还有一种就是

module.exports=function(num1,num2){
        return num1+num2;
};

引入
var add = require('./add');
console.log(add(1,2));

输出:3

module.exports和exports的用法也有一些区分,不过现在还没有理解透彻,等以后在来说说自己的看法。

今天简单说了说nodejs的特点,npm工具,安装模块的一些问题和解决方法,模块引入的一些方法和暴露模块的方法,相比与网上诸多分享,我的可能含金量不高,不过对于一个新新手,还是易于理解的。

如果有什么问题,还望大家多多指教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值