nodejs基础应用


Posted in NodeJs onFebruary 03, 2017

一、第一个nodejs应用

n1_hello.js

console.log('hello word!');

在命令行cmd中执行该文件(在该文件处打开命令行):

node n1_hello.js

在命令行cmd返回结果:

hello word!

二、nodejs基本格式

//步骤一:引入require模块,require指令载入http模块
var http = require('http');
//步骤二:创建服务器
http.createServer(function (request, response) {
 // 发送 HTTP 头部
 // HTTP 状态值: 200 : OK
 // 内容类型: text/html
 response.writeHead(200, {'Content-Type': 'text/html;chaset=utf-8;'});
//步骤三:接受请求与响应请求
 if(request.url!=='/favicon.ico'){
   ......
  // 发送响应数据
  response.end('');//必须有,没有则没有协议尾
 }
}).listen(8000);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8000/');

三、nodejs调用函数

-----------------调用本地函数-----------------------------

var http = require('http');
http.createServer(function (request, response) {
 response.writeHead(200, {'Content-Type': 'text/html;chaset=utf-8;'});
 if(request.url!=='/favicon.ico'){
  fun1(response);
  // 发送响应数据
  response.end('');
 }
}).listen(8000);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8000/');
function fun1(res){
 console.log('fun1');
 res.write('hello,我是fun1');
}

-----------------调用外部函数-----------------------------

注意:外部函数必须写在module.exports中,exports 是模块公开的接口

------------(1)仅调用一个函数-----------

主程序中:

var http = require('http');
var otherfun = require("./models/otherfuns.js");//调用外部页面的fun2
http.createServer(function (request, response) {
 response.writeHead(200, {'Content-Type': 'text/html;chaset=utf-8;'});
 if(request.url!=='/favicon.ico'){
  otherfun(response);//支持一个函数时
  response.end('');
 }
}).listen(8000);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8000/');

otherfuns.js中

function fun2(res){
 console.log('fun2');
 res.write('你好!,我是fun2');
}
module.exports = fun2;//只支持一个函数

------------(2)调用多个函数-----------

主程序中:

var http = require('http');
var otherfun = require("./models/otherfuns.js");//调用写函数的外部页面otherfuns.js
http.createServer(function (request, response) {
 response.writeHead(200, {'Content-Type': 'text/html;chaset=utf-8;'});
 if(request.url!=='/favicon.ico'){
  //todo 以对象.方法名调用
  otherfun.fun2(response);
  otherfun.fun3(response);
  //todo 以字符串调用对应函数(结果同上)
  //otherfun['fun2'](response);
  //otherfun['fun3'](response);
  response.end('');
 }
}).listen(8000);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8000/');
}

otherfuns.js中

module.exports={
 fun2:function(res){//匿名函数
  console.log('fun2');
  res.write('你好!,我是fun2');//在页面中输出
 },
 fun3:function(res){
  console.log('fun3');
  res.write('你好!,我是fun3');
 }, 
   ......
}
 

四、nodejs路由初步

主程序n4_rout.js:

var http = require('http');
//引入url模块
var url = require('url');
http.createServer(function (request, response) {
 response.writeHead(200, {'Content-Type': 'text/html;chaset=utf-8;'});
 if(request.url!=='/favicon.ico'){
  var pathname = url.parse(request.url).pathname;
  pathname=pathname.replace(/\//,'');//替换掉前面的/
  console.log(pathname);
  response.end('');
 }
}).listen(8000);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8000/');

在命令行cmd中执行该文件,在访问:http://localhost:8000/,在此输入路由地址,如下图,并观察命令行。

nodejs基础应用

五、nodejs读取文件

主程序:

var http = require('http');
var optfile=require('./models/optfile');//导入文件
http.createServer(function (request, response) {
 // 发送 HTTP 头部
 // HTTP 状态值: 200 : OK
 // 内容类型: text/html
 response.writeHead(200, {'Content-Type': 'text/html;chaset=utf-8;'});
 if(request.url!=='/favicon.ico'){//清除第2次访问
  optfile.readfileSync('./views/login.html');//同步调用读取文件readfileSync()方法
  //optfile.readfile('./views/login.html',response);//异步步调用读取文件readfile()方法
  response.end('ok!!!!!');//todo 不写没有协议尾
  console.log('主程序执行完毕!');
 }
}).listen(8000);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8000/');

optfile.js中:

var fs=require('fs');//Node 导入文件系统模块(fs)语法 导入fs操作文件的类
module.exports={
 readfileSync:function(path){
  // 同步读取
  var data = fs.readFileSync(path,'utf-8');//以中文读取同步文件路径path
  console.log("同步方法执行完毕。");
 },
 readfile:function(path){
  // 异步读取
  fs.readFile(path,function (err, data) {
   if (err) {
    console.error(err);
   }else{
    console.log("异步读取: " + data.toString());
   }
  });
  console.log("异步方法执行完毕。");
 },
}

结果:命令行cmd中

(1)同步读取文件时:

   nodejs基础应用

(2)异步读取文件时:(常用)

   nodejs基础应用

   网页中:均为:

nodejs基础应用

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

NodeJs 相关文章推荐
我的NodeJs学习小结(一)
Jul 06 NodeJs
NodeJS学习笔记之Connect中间件模块(一)
Jan 27 NodeJs
Nodejs中session的简单使用及通过session实现身份验证的方法
Feb 04 NodeJs
用nodejs的实现原理和搭建服务器(动态)
Aug 10 NodeJs
详解nodejs 文本操作模块-fs模块(一)
Dec 22 NodeJs
初探nodeJS
Jan 24 NodeJs
NodeJS链接MySql数据库的操作方法
Jun 27 NodeJs
nodejs超出最大的调用栈错误问题
Dec 27 NodeJs
nodejs读取并去重excel文件
Apr 22 NodeJs
Nodejs调用Dll模块的方法
Sep 17 NodeJs
Nodejs对postgresql基本操作的封装方法
Feb 20 NodeJs
Nodejs libuv运行原理详解
Aug 21 NodeJs
nodejs基础知识
Feb 03 #NodeJs
windows 下安装nodejs 环境变量设置
Feb 02 #NodeJs
图片上传之FileAPI与NodeJs
Jan 24 #NodeJs
初探nodeJS
Jan 24 #NodeJs
进阶之初探nodeJS
Jan 24 #NodeJs
用nodejs搭建websocket服务器
Jan 23 #NodeJs
NodeJS遍历文件生产文件列表功能示例
Jan 22 #NodeJs
You might like
不要轻信 PHP_SELF的安全问题
2009/09/05 PHP
PHP JS Ip地址及域名格式检测代码
2013/09/27 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
2017/05/26 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
2019/08/12 PHP
JavaScript中的Location地址对象
2008/01/16 Javascript
ext for eclipse插件安装方法
2008/04/27 Javascript
有趣的javascript数组定义方法
2010/09/10 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
jQuery实现textarea自动增长宽高的方法
2015/12/18 Javascript
JavaScript关于提高网站性能的几点建议(一)
2016/07/24 Javascript
js禁止Backspace键使浏览器后退的实现方法
2017/09/01 Javascript
vue-cli中的webpack配置详解
2017/09/25 Javascript
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
VUE单页面切换动画代码(全网最好的切换效果)
2019/10/31 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
2020/01/16 Javascript
[05:26]TI10典藏宝瓶套装外观展示
2020/07/03 DOTA
Python中线程编程之threading模块的使用详解
2015/06/23 Python
详解Python异常处理中的Finally else的功能
2017/12/29 Python
Python实现的爬取小说爬虫功能示例
2019/03/30 Python
python对文件目录的操作方法实例总结
2019/06/24 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
2020/06/08 Python
PyCharm Community安装与配置的详细教程
2020/11/24 Python
捷克领先的户外服装及配件市场零售商:ALPINE PRO
2018/01/09 全球购物
运动会加油口号
2014/06/07 职场文书
会计学专业自荐信
2014/06/25 职场文书
“三支一扶”支教教师思想汇报
2014/09/13 职场文书
2014年秘书工作总结
2014/11/25 职场文书
2014小学语文教学工作总结
2014/12/17 职场文书
幼儿园重阳节活动总结
2015/05/05 职场文书
2015年预算员工作总结
2015/05/14 职场文书
2016年度继续教育学习心得体会
2016/01/19 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
js 数组 fill() 填充方法
2021/11/02 Javascript
java项目构建Gradle的使用教程
2022/03/24 Java/Android
Python 全局空间和局部空间
2022/04/06 Python