赞
踩
node --version 或 node -v
node --version 或 node -v 或 node 进入交互
并不是说NodeJS和NPM安装好了以后就能直接使用了。因为默认情况下,NPM安装的模块并不会安装到NodeJS的程序目录,而是C盘,我们要想办法去改变他的路径到D:\nodejs\目录。
D盘nodejs目录下创建两个目录,分别是node_cache和node_global,
这是用来放安装过程的缓存文件以及最终的模块配置位置。配置完成
后,在cmd执行下面这两个命令:
npm config set prefix “D:\nodejs\node_global” //配置全局模块存放路径
npm config set cache “D:\nodejs\node_cache” //cache路径
还需要修改一些nodejs默认的模块调用路径,因为模块的安装位置变了,如果nodejs的命令还到原来的位置去找,肯定是找不到安装的模块了。选择Path,然后点击编辑,然后选择npm那个,修改成D:\nodejs\node_global\。
重置npm模块的注册、管理、发布地址为cnpm:
npm install cnpm -g(引申:cnpmjs.org: Private npm registry and web for Company,cnpm是一个网站,同时cnpm也是一个命令行工具,面向企业级的私有npm包的注册地、管理、发布)
重置模块的镜像地址:
修改npm包管理器的registry为淘宝镜像,npm config set registry https://registry.npm.taobao.org(官方地址为registry.npmjs.org)
重置设置代理:npm config set proxy http://server:port
全局命令
其他命令
总结
devDependencies 节点下的模块是我们在开发时需要用的,比如项目中使用的 gulp ,压缩css、js的模块。这些模块在我们的项目部署后是不需要的,所以我们可以使用 -save-dev 的形式安装。像 express 这些模块是项目运行必备的,应该安装在 dependencies 节点下,所以我们应该使用 -save 的形式安装。
浏览器中的JavaScript没有文件操作能力的,但是node中的JavaScript具有文件操作能力.
node中想要进行文件操作,就需要引入fs这个模块,提供了所有的文件操作相关API ;fs是file-system(文件系统)的简写.
/ 浏览器中的 JavaScript 是没有文件操作的能力的 // 但是 Node 中的 JavaScript 具有文件操作的能力 // fs 是 file-system 的简写,就是文件系统的意思 // 在 Node 中如果想要进行文件操作,就必须引入 fs 这个核心模块 // 在 fs 这个核心模块中,就提供了所有的文件操作相关的 API // 例如:fs.readFile 就是用来读取文件的 // 1. 使用 require 方法加载 fs 核心模块 var fs = require('fs') // 2. 读取文件 // 第一个参数就是要读取的文件路径 // 第二个参数是一个回调函数 // // 成功 // data 数据 // error null // 失败 // data undefined没有数据 // error 错误对象 fs.readFile('./data/hello.txt', function (error, data) { // <Buffer 68 65 6c 6c 6f 20 6e 6f 64 65 6a 73 0d 0a> // 文件中存储的其实都是二进制数据 0 1 // 这里为什么看到的不是 0 和 1 呢?原因是二进制转为 16 进制了 // 但是无论是二进制01还是16进制,人类都不认识 // 所以我们可以通过 toString 方法把其转为我们能认识的字符 // console.log(data) // console.log(error) // console.log(data) // 在这里就可以通过判断 error 来确认是否有错误发生 if (error) { console.log('读取文件失败了') } else { console.log(data.toString()) } })
var fs = require('fs') // $.ajax({ // ... // success: function (data) { // } // }) // 第一个参数:文件路径 // 第二个参数:文件内容 // 第三个参数:回调函数 // error // // 成功: // 文件写入成功 // error 是 null // 失败: // 文件写入失败 // error 就是错误对象 fs.writeFile('./data/你好.md', '大家好,给大家介绍一下,我是Node.js', function (error) { // console.log('文件写入成功') // console.log(error) if (error) { console.log('写入失败') } else { console.log('写入成功了') } })
// 接下来,我们要干一件使用 Node 很有成就感的一件事儿 // 你可以使用 Node 非常轻松的构建一个 Web 服务器 // 在 Node 中专门提供了一个核心模块:http // http 这个模块的职责就是帮你创建编写服务器的 // 1. 加载 http 核心模块 var http = require('http') // 2. 使用 http.createServer() 方法创建一个 Web 服务器 // 返回一个 Server 实例 var server = http.createServer() // 3. 服务器要干嘛? // 提供服务:对 数据的服务 // 发请求 // 接收请求 // 处理请求 // 给个反馈(发送响应) // 注册 request 请求事件 // 当客户端请求过来,就会自动触发服务器的 request 请求事件,然后执行第二个参数:回调处理函数 / request 请求事件处理函数,需要接收两个参数: // Request 请求对象 // 请求对象可以用来获取客户端的一些请求信息,例如请求路径 // Response 响应对象 // 响应对象可以用来给客户端发送响应消息 server.on('request', function (request, response) { // http://127.0.0.1:3000/ / // http://127.0.0.1:3000/a /a // http://127.0.0.1:3000/foo/b /foo/b console.log('收到客户端的请求了,请求路径是:' + request.url) // response 对象有一个方法:write 可以用来给客户端发送响应数据 // write 可以使用多次,但是最后一定要使用 end 来结束响应,否则客户端会一直等待 response.write('hello') response.write(' nodejs') // 告诉客户端,我的话说完了,你可以呈递给用户了 response.end() // 由于现在我们的服务器的能力还非常的弱,无论是什么请求,都只能响应 hello nodejs // 思考: // 我希望当请求不同的路径的时候响应不同的结果 // 例如: // / index // /login 登陆 // /register 注册 // /haha 哈哈哈 }) // 4. 绑定端口号,启动服务器 server.listen(3000, function () { console.log('服务器启动成功了,可以通过 http://127.0.0.1:3000/ 来进行访问') })
var http = require('http') // 1. 创建 Server var server = http.createServer() // 2. 监听 request 请求事件,设置请求处理函数 server.on('request', function (req, res) { console.log('收到请求了,请求路径是:' + req.url) console.log('请求我的客户端的地址是:', req.socket.remoteAddress, req.socket.remotePort) // res.write('hello') // res.write(' world') // res.end() // 上面的方式比较麻烦,推荐使用更简单的方式,直接 end 的同时发送响应数据 // res.end('hello nodejs') // 根据不同的请求路径发送不同的响应结果 // 1. 获取请求路径 // req.url 获取到的是端口号之后的那一部分路径 // 也就是说所有的 url 都是以 / 开头的 // 2. 判断路径处理响应 var url = req.url if (url === '/') { res.end('index page') } else if (url === '/login') { res.end('login page') } else if (url === '/products') { var products = [{ name: '苹果 X', price: 8888 }, { name: '菠萝 X', price: 5000 }, { name: '小辣椒 X', price: 1999 } ] // 响应内容只能是二进制数据或者字符串 // 数字 // 对象 // 数组 // 布尔值 res.end(JSON.stringify(products)) } else { res.end('404 Not Found.') } }) // 3. 绑定端口号,启动服务 server.listen(3000, function () { console.log('服务器启动成功,可以访问了。。。') })
node 为js提供了很多服务器级别的API,这些API绝大多数被包装到了一个具名的核心模块中;如 fs 核心模块, http 服务构建的 http 模块、os 操作系统信息模块。。。
var foo = 'bbb' // console.log(exports) exports.foo = 'hello' exports.add = function (x, y) { return x + y } exports.readFile = function (path, callback) { console.log('文件路径:', path) } exports.age = age var age = 18 function add(x, y) { return x - y }
这样就可以调用了
var bExports = require('./b') var fs = require('fs') console.log(bExports.foo) console.log(bExports.add(10, 30)) console.log(bExports.age) bExports.readFile('./a.js') fs.readFile('./a.js', function (err, data) { if (err) { console.log('读取文件失败') } else { console.log(data.toString()) } })
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。