Node.js

举报
武师叔 发表于 2022/08/22 20:32:37 2022/08/22
【摘要】 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 也可以创建自己的后台服务。

官网:https://nodejs.org/zh-cn/

默认下载可执行程序版本,程序会自动配置环境变量,开发者可以直接使用。

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 规范

  1. module.exports 导出接口,require 引入模块。
  2. 输出是值的拷贝。

由于引擎尚不支持,我们在 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 语法

  1. export 导出接口,import 引入模块。
  2. 输出是值的引用。

我们在 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。