node.js(一)
安装官网:
https://nodejs.org/en/
运行代码:
var http=require('http')
http.createServer(function(req,res){
res.writeHead(200,{'Content-Type':'text/html'});
res.write('<h1>Node.js</h1>');
res.end('<p>PCAT</p>');
}).listen(3000);
console.log('HTTP server is listening at port 3000.');
建立app.js 用cmd启动,出现成功
HTTP server is listening at port 3000.
安装调试工具:
npm install -g supervisor
用supervisor启动服务,每次修改代码就不用node启动了。
supervisor app.js 文件名称
同步读取文件:
var fs=require('fs');
var data=fs.readFileSync('file.txt','UTF-8');
console.log(data);
console.log('end');

异步读取文件:
var fs=require('fs');
fs.readFile('file.txt','UTF-8',function(err,data){
if(err){
console.log('read file err');
}else{
console.log(data);
}
});
console.log('end');

写一个简单的自定义事件:
var EventEmitter=require('events').EventEmitter;
var event=new EventEmitter();
event.on('some_event',function(){
console.log('这是一个自定义事件');
});
setTimeout(function(){
event.emit('some_event');
},1000);

自定义模块(调用):
var myModule=require('./module');
myModule.setName('marico');
myModule.sayHello();
模块:
var name;
exports.setName=function(thyName){
name=thyName;
}
exports.sayHello=function(){
console.log('hello'+name);
}

把上面的方法分装一下:
function hello(){
var name;
this.setName=function(thyName){
name=thyName;
}
this.sayHello=function(){
console.log('hello '+name);
}
}
//exports.hello=hello;
module.exports=hello;
var hello=require('./module.js');
var he=new hello();
he.setName('marico');
he.sayHello();
var he2=new hello();
he2.setName('yfc');
he2.sayHello();
npm创建包步骤:
1.npm init

安装包:(要进入node安装目录)
C:\Users\Administrator\AppData\Roaming\npm\node_modules\npm\lib>npm install testpackage/
查看包:
npm list
vue地址:
<script src="https://unpkg.com/vue@2.3.3/dist/vue.min.js"></script>
安装vue-cli:(全局安装)
npm install vue-cli -g
vue构成项目
vue init webpack-simple demo5
创建完成后:(下载git上依赖的文件)
npm install
npm run dev
vue init webpack demo6
安装依赖环境
npm install
运行:
npm run dev
打包:
npm run build
生成的文件:

安装cnpm:
npm install -g cnpm --registry=https://registry.npm.taobao.org
安装vue-Resource
cnpm install vue-resource --svae
安装exios
cnpm install axios --save
两种不同的加载
module.exports={
userName:"laoshi",
sayHello:function(){
return 'Hello laoshi';
}
}
exports.userName="Tom";
exports.sayHello=function () {
return 'World';
}
引用:
let user=require('./User');
console.log(`userName:${user.userName}`);
console.log(`I'm ${user.userName},I say ${user.sayHello()}`);
创建服务:
let http=require('http');
let url=require('url');
let util=require('util');
let server= http.createServer((req,res)=>{
res.statusCode=200;
res.setHeader("Content-Type","text/plan;charset=utf-8");
console.log("url:"+req.url);//字符串
console.log("parse:"+url.parse(req,url));//[object]
console.log("inspect:"+util.inspect(url.parse(req.url)));//调试的时候使用
res.end(util.inspect(url.parse(req.url)));
});
server.listen(3000,'127.0.0.1',()=>{
console.log("服务器已经运行,请打开浏览,输入:http://127.0.0.1:3000/ 来进行访问");
});
let http = require('http');
let util=require('util');
http.get("http://www.imooc.com/u/card", function (res) {
let data = '';
res.on('data', function (chunk) {
data += chunk;
});
res.on('end', function () {
let result = JSON.parse(data);
console.log("result:"+util.inspect(result));
})
});
安装:
cnpm install -g express-generator
查看版本
express --version
创建server
express server
安装依赖:
cnpm install
进入server运行
node bin/www
安装ejs
cnpm install ejs --save
配制html

安装pm2
cnpm install pm2 -g
启动pm2
pm2 start server/bin/www
停止(所有)
pm2 stop all
启动monog数据库
mongod -f /usr/local/etc/mongod.conf
无滚动工具安装:https://www.npmjs.com/
npm install vue-infinite-scroll --save
node.js(一)的更多相关文章
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
- 利用Node.js的Net模块实现一个命令行多人聊天室
1.net模块基本API 要使用Node.js的net模块实现一个命令行聊天室,就必须先了解NET模块的API使用.NET模块API分为两大类:Server和Socket类.工厂方法. Server类 ...
- Node.js:进程、子进程与cluster多核处理模块
1.process对象 process对象就是处理与进程相关信息的全局对象,不需要require引用,且是EventEmitter的实例. 获取进程信息 process对象提供了很多的API来获取当前 ...
- Node.js:理解stream
Stream在node.js中是一个抽象的接口,基于EventEmitter,也是一种Buffer的高级封装,用来处理流数据.流模块便是提供各种API让我们可以很简单的使用Stream. 流分为四种类 ...
- Node.js:Buffer浅谈
Javascript在客户端对于unicode编码的数据操作支持非常友好,但是对二进制数据的处理就不尽人意.Node.js为了能够处理二进制数据或非unicode编码的数据,便设计了Buffer类,该 ...
- node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法
1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...
- Node.js npm 详解
一.npm简介 安装npm请阅读我之前的文章Hello Node中npm安装那一部分,不过只介绍了linux平台,如果是其它平台,有前辈写了更加详细的介绍. npm的全称:Node Package M ...
- Node.js入门(一)
一.Node.js本质上是js的运行环境. 二.可以解析js代码(没有浏览器安全级的限制): 提供系统级的API:1.文件的读写 2.进程的管理 3.网络通信 三.可以关注的四个网站: 1.https ...
- Node.js学习笔记——Node.js开发Web后台服务
一.简介 Node.js 是一个基于Google Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效.Node.j ...
- Node.js入门
开始之前,安利一本正在看的书<站在两个世界的边缘>,作者程浩,上帝丢给他太多理想,却忘了给他完成理想的时间.OK,有兴趣的可以看一看. node.js如标题一样,我也是刚开始接触,大家一起 ...
随机推荐
- Kivy折腾笔记
最近想用Python开发APP,选择kivy,记录过程 首先是源码安装,各种蛋疼的报错放弃了.cython高版本有问题. python3 -m pip install cython==0.23 pyt ...
- costmap_2d 解析
costmap_2d这个包提供了一种2D代价地图的实现方案,该方案利用输入的传感器数据,构建数据2D或者3D代价地图(取决于是否使用基于voxel的实现),并根据占用网格和用户定义的膨胀半径计算2D代 ...
- ROS tf 两个常用的函数
/** \brief Get the transform between two frames by frame ID. * \param target_frame The frame to wh ...
- 设计模式C++学习笔记之四(Multition多例模式)
多例模式,这个在GOF的模式设计里没有提到,但在实际工作中确实会用到.更详细的内容及说明可以参考原作者博客:cbf4life.cnblogs.com. 4.1.解释 main(),客户 略 说明: ...
- bzoj 1175: The stairways of Saharna
一道杨氏矩阵的题,萌新初入门,还不是很懂,这篇 blog 讲的超级好(就是看图有点麻烦) 据说这玩意儿可以代替堆和平衡树用,支持插入.删除.查询,跑得还挺快的(慢着,复杂度好像是 n^2 ? 而且空间 ...
- 007_ip统计及攻击ip分析
线上经常有被扫描的DDoS攻击事件,需要集合日志进行分析,这里有两种方法,分别是通过shell和python的方式. 一.shell '''<1>shell一句命令分析 http://bl ...
- page_cleaner: 1000ms intended loop took 4724ms. The settings might not be optimal. (flushed=1037, during the time.)
2018-07-09T14:28:56.853600Z 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 4724ms. The set ...
- ASP.NET MVC5入门2之Ajax实现数据查询
开发环境:VS2013 数据库:SQL Server2008R2 架构:ASP.NET MVC5 开发语言:C# 代码下载链接:http://download.csdn.net/detail/u010 ...
- Tornado学习笔记(三) 请求方式/状态码
本章我们来学习 Tornado 支持的请求方式 请求方式 Tornado支持任何合法的HTTP请求(GET.POST.PUT.DELETE.HEAD.OPTIONS).你可以非常容易地定义上述任一种方 ...
- 任意N位二进制的补码实现——队列存放
正在学习计算机组织与结构,为了写一些底层的算术操作模拟,比如一个二进制补码数的加减乘除,发现这很麻烦,因为不管是什么语言,都只提供了8位.32.64位等部分位数的补码形式,那么怎么实现任意任意位的补码 ...