NodeJS新建服务器以及CommonJS规范

1、什么是node.js?
(1)Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
(2)Node.js 的包管理器 npm,成为世界上最大的开放源代码的生态系统。
(3)Node.js 可以解析JS代码(没有浏览器安全级别的限制)提供很多系统级别的API,如:- 文件的读写 fs - 进程的管理 procress- 网络通信 socket- ……

2、为什么要学习nodejs?
node-webkit、nodeOs、express、koa、Jade、EJS、Forever、PM2、Log.i、Grunt、Gulp、Webpack、Mocha、Karma

3、node.js网站
(1)工具:https://nodejs.org/en/
(2)工具安装:https://www.runoob.com/nodejs/nodejs-install-setup.html
(3)连接mongdob:https://www.runoob.com/nodejs/nodejs-mongodb.html
(4)文档:http://nodejs.cn/

4、npm指令
(1)npm -V / npm --version 查询版本
(2)npm install -g cnpm --registry=https://registry.npm.taobao.org 淘宝镜像
(3)cnpm -V 查询版本
(4)npm install supervisor -g 用于运行nodejs程序的管理程序
(5)npm install nodemon -g 在开发node.js应用程序期间使用的简单监视器脚本。
(6)npm install pm2 -g 具有内置负载均衡器的Node.JS应用程序的生产过程管理器。

5、新建服务器server.js
(1)node要导入http模块
let http = require("http");
(2)主机
let hostname = "localhost";
(3)端口
let port = 3000;
(4)创建服务器
http.createServer((req, res) =>{
  if(req.url !== "/favicon.ico"){
  console.log(req.url);
  res.writeHead(200, {"Content-Type":"text/html;charset=utf-8"});
  res.write(`<h2>good good study</h2>`)
  res.write(`<h2>day day up</h2>`)
  res.write(`<h2>we are good boy</h2>`)
  res.end();
  }
}).listen(port, hostname, () =>{
  console.log(`this server is running at http://${hostname}:${port}`);
})
(5)启动指令:node server.js/nodemon server.js

6、什么叫模块化开发?
复杂逻辑代码多的功能分而解之为独立高度封装的单元模块。

7、CommonJs规范
模块定义 define
模块接口暴露 exports
模块导入 require
注意:
(1)模块化开发 AMD异步模块定义(require.js) CMD同步模块定义(sea.js)
(2) NodeJs && webpack 是 CommonJS 规范 的一种实现 ;CommonJS 规范 是 NodeJs && webpack 的 规范 和规则
(3)所有的 js 文件 本身就是 一个模块
(4)nodejs使用的是commonjs规范 注意: nodejs虽然原生支持es6 但它并不支持 es6的import规范

8、接口暴露
导入:let xx = require("xxx")
导出:
(1)一个文件内只能使用一次
module.exports = Object | Function | Array | String | Number | Boolean
(2)一个文件可以使用多次
exports.xxx = Object | Function | Array | String | Number | Boolean
下列写法不被允许 它会改变exports对象的引用导致程序运行出错
exports = {
xxx : "text"
}

举例说明:
(1)module.exports = {};
let arr = ["小红", "小黄", "小明"];
let str = "我要飞的更高,飞的更高";
let obj = {
  age : "18",
  name : "jack",
  content : "money"
}
function setUsername(username){
  return `${username} 说:every day day up`;
}
module.exports = {
arr,
str,
obj,
setUsername
}
(2)exports key = value;
const getSomeone=(someone)=>{
  return `<h3>${someone} word hard for 12000 RMB </h3>`;
}
exports.getSomeone =getSomeone;
exports.word = `<h3>1807 你们努力了吗</h3>`;

es6的import规范
方式1
导入:
import XXX from "xxx"
导出:
export default xxx
该种方式一个文件内只能使用一次

方式2
导入:
import {XXX} from "xxx"
import {XXX as YYY} from "xxx" //将模块XXX给个别名为YYY
导出:
export let | const | var | function | class | interface XXX = ....
或者
let(可以是其他声明符) XXX = ....
export {XXX}

上述导出方式可以在同一个文件内使用多次
举例说明:
(1)export default
export default{
  say(){}
}

原文地址:https://www.cnblogs.com/lishixiang-007/p/11273541.html

时间: 2024-09-29 21:12:01

NodeJS新建服务器以及CommonJS规范的相关文章

nodejs新建服务器

var http = require('http');// var optfile = require('./models/optfile'); http.createServer(function (request, response) {  response.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});  if(request.url!=="/favicon.ico"){ //清除第2此访问    con

commonjs 规范

CommonJS规范 1. 概述 Node程序由许多个模块组成,每个模块就是一个文件.Node模块采用了CommonJS规范. 根据CommonJS规范,一个单独的文件就是一个模块.每一个模块都是一个单独的作用域,也就是说,在一个文件定义的变量(还包括函数和类),都是私有的,对其他文件是不可见的. //example.jsvar x = 5;var addX = function(value) {    return value + x;}在上述代码中,变量x和addX, 是当前文件exampl

CommonJS规范(转)

概述 CommonJS是服务器端模块的规范,Node.js采用了这个规范. 根据CommonJS规范,一个单独的文件就是一个模块.加载模块使用require方法,该方法读取一个文件并执行,最后返回文件内部的exports对象.下面就是一个简单的模块文件example.js. console.log("evaluating example.js"); var invisible = function () { console.log("invisible"); } e

【转】Commonjs规范及Node模块实现

前言: Node在实现中并非完全按照CommonJS规范实现,而是对模块规范进行了一定的取舍,同时也增加了少许自身需要的特性.本文将详细介绍NodeJS的模块实现 引入 nodejs是区别于javascript的,在javascript中的顶层对象是window,而在node中的顶层对象是global [注意]实际上,javascript也存在global对象,只是其并不对外访问,而使用window对象指向global对象而已 在javascript中,通过var a = 100:是可以通过wi

AMD、CMD和CommonJS规范(转)

CommonJS规范 CommonJS是在浏览器环境之外构建JavaScript生态系统为目标产生的项目,比如服务器和桌面环境中.CommonJS规范是为了解决JavaScript的作用域问题而定义的模块形式, 可以使每个模块在它自身的命名空间中执行.该规范的主要内容是:模块必须通过  module.exports导出对外的变量或接口,通过require()来导入其他模块的输出到当前模块. 例子: // moduleA.js module.exports = function( value ){

你对CommonJS规范了解多少?

写在前面 为什么会出现CommonJS规范? 因为JavaScript本身并没有模块的概念,不支持封闭的作用域和依赖管理,传统的文件引入方式又会污染变量,甚至文件引入的先后顺序都会影响整个项目的运行.同时也没有一个相对标准的文件引入规范和包管理系统,这个时候CommonJS规范就出现了. CommonJS规范的优点有哪些? 首先要说的就是它的封装功能,模块化可以隐藏私有的属性和方法,这样不需要别人在重新造轮子. 第二就是它能够封装作用域,保证了命名空间不会出现命名冲突的问题. 第三nodejs中

Node.js相关——CommonJS规范

1. CommonJS规范产生背景 在后端,JavaScript的规范远远落后并且有很多缺陷,这使得难以使用JavaScript开发大型应用.比如: 没有模块系统 标准库较少 没有标准接口 缺乏包管理系统 CommonJS规范 的提出,主要是为了弥补JavaScript没有标准的缺陷.CommonJS API将通过定义处理许多常见应用程序需求的API来填补这一空白,最终提供与Python,Ruby和Java一样丰富的标准库.以达到像Python.Ruby和Java那样具备开发大型应用的基础能力,

Windows服务器防火墙配置规范

本文属于一篇内部规范文档,整理的初衷是为了规范.统一集团的Windows服务器(仅仅SQL Server数据库服务器)防火墙设置,仅仅供内部其它同事设置Windows防火墙时作为参考的文档资料.如有不足,敬请指正.后续将不断完善.整理该文档.文档里面部分内容直接摘抄自MSDN,敬请知晓!   文档类型 Windows服务器防火墙配置规范 创建日期 2017-02-06 版本变化 V1.0 修改记录 修改人 修改日期 版本 修改描述 孔令波 2017-02-06 V1.0 创建制定文档 注意事项:

安装nodeJs静态服务器(NodeJs Express MVC 框架)

安装 NodeJs Express MVC 框架 新建项目文件夹 打开cmd 执行以下操作: 一.使用Express框架 1)安装express3 $: npm install -g [email protected] 2)目录下新建工程 $: express -e staticServer 3)安装所需模块 $: cd staticServer && npm install 这部执行完毕即可启动服务器 $: node app express默认public目录为静态资源目录,可在浏览器中