Node.js
【摘要】 Node.js Node.js 介绍Node.js 是一个 JavaScript 运行环境,运行在服务端(后端)。用户不再需要后台动态编程语言,只使用 JS 也可以创建自己的后台服务。官网:https://nodejs.org/zh-cn/默认下载可执行程序版本,程序会自动配置环境变量,开发者可以直接使用。 Node.js 使用安装 Node.js 成功后,通过控制台命令可以执行 JS 脚...
Node.js
Node.js 介绍
Node.js 是一个 JavaScript 运行环境,运行在服务端(后端)。用户不再需要后台动态编程语言,只使用 JS 也可以创建自己的后台服务。
默认下载可执行程序版本,程序会自动配置环境变量,开发者可以直接使用。
Node.js 使用
安装 Node.js 成功后,通过控制台命令可以执行 JS 脚本:
node --version # 查看 Node.js 版本
node # 进入 Node.js 运行环境,可以直接输入 JS 代码并执行
node example.js # 执行指定的 JS 文件Copy to clipboardErrorCopied
Node.js 模块
模块化开发
根据主流的模块化规范 ES6 定义:一个 JS 文件就是一个模块。
模块之间必须通过规范的接口相互调用,目前最常使用的是 CommonJS 规范和 ES6 标准。
CommonJS 规范
- module.exports 导出接口,require 引入模块。
- 输出是值的拷贝。
由于引擎尚不支持,我们在 node.js 中习惯使用 CommonJS 语法。
var num = 1
function test(x){
console.log("输出数据为" + x);
}
exports.num = num
exports.test = userTest // 可以写为 module.exports.test = useTest
/*************************************************************************/
var a = require('./a') // 调用 a.useTest(a.num) Copy to clipboardErrorCopied
ES6 语法
- export 导出接口,import 引入模块。
- 输出是值的引用。
我们在 vue 中通常使用 ES6 语法,但必须安装 babel 插件自动转码为 commonJS 语法执行。
var num = 1
function test(x){
console.log("输出数据为" + x);
}
export var num
export function test // 可以写为 export test
// 默认导出接口
export default {
num,
test
}
/*************************************************************************/
import {num,test as useTest} from './a.js' // 调用 useTest(num)
// 读取 JS 文件全部导出
import * as a from './a.js' // 调用 a.test(a.num)
// 读取 JS 文件默认导出
import a from './a.js' Copy to clipboardErrorCopied
官方模块
Node.js 提供了允许直接导入的官方模块,查询网址:http://nodejs.cn/api/
- OS 模块:系统信息
var os = require("os");
console.log('主机名' + os.hostname());
console.log('操作系统' + os.type());
console.log('系统平台' + os.platform());
console.log('内存总量' + os.totalmem() + '字节');
console.log('可用内存' + os.freemem() + '字节');Copy to clipboardErrorCopied
- Path 模块:路径信息
var path = require("path");
var data = "c:/myapp/index.html";
console.log(path.basename(data)); // 输出 index.html
console.log(path.dirname(data)); // 输出 c:/myapp
console.log(path.basename(dirname(data))); // 输出 myappCopy to clipboardErrorCopied
- URL 模块:URL 信息
var url = require("url");
var data = "http://test.com?name=王东浩&age=22";
console.log(url.parse(data)); // 输出 网址解析信息
var urlQuery = url.parse(data, true);
console.log(urlQuery.query.name); // 输出 王东浩Copy to clipboardErrorCopied
- fs 模块:文件信息
var fs = require("fs");
fs.writeFile('./a.txt', '你好,我是王东浩', function(err){
if(err){
console.log(err);
return;
}
console.log('success');
})
fs.readFile('./a.txt', 'utf8', function(err, data){
if(err){
console.log(err);
return;
}
console.log(data);
})Copy to clipboardErrorCopied
- http / https 模块:服务器
var http = require("http");
var server = http.createserver(); // 创建服务器
server.on('request', function(req, res){ // 配置监听器,有请求则触发
console.log('收到用户请求,请求地址' + req.url)
console.log('请求方式' + req.method)
if(req.url == '/'){
$msg = "<a herf='www.baidu.com'>点击跳转</a>";
}else{
$msg = "404 Not Found";
}
res.setHeader('Content-Type','text/html,charset=utf8');
res.write($msg);
res.end;
})
server.listen(8080, function(){ // 启动服务器,监听端口
console.log('服务启动成功')
})
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)