原生node.js

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

node.js 中文API http://nodejs.cn/api/

Node中,js文件和js文件,就是被一个个exports和require构建成为网状的。
不是靠html文件统一在一起的。


暴露函数module.exports = function md5(mingma){ ........
return password;
}
另一个JS: var md= require("./model/md5.js").md5;====================
还可以匿名
module.exports = function (mingma){ ........
return password;
}
另一个JS: var md5= require("./model/md5.js");

● 如果在require命令中,这么写:
1 var foo = require("foo.js"); //没有写./, 所以不是一个相对路径。是一个特殊的路径
那么Node.js将该文件视为node_modules目录下的一个文件

● node_modules文件夹并不一定在同级目录里面,在任何直接祖先级目录中,都可以。甚至可以放到NODE_PATH环境变量的文件夹中。这样做的好处稍后你将知道:分享项目的时候,不需要带着modules一起给别人。

● 我们可以使用文件夹来管理模块,比如
1 var bar = require("bar");
那么Node.js将会去寻找node_modules目录下的bar文件夹中的index.js去执行。

每一个模块文件夹中,推荐都写一个package.json文件,这个文件的名字不能改。node将自动读取里面的配置。有一个main项,就是入口文件:

1   {
2     "name": "kaoladebar",
3     "version": "1.0.1",
4     "main" : "app.js"
5   }
6   

package.json文件,要放到模块文件夹的根目录去。

1.我们的依赖包,可能在随时更新,我们永远想保持更新,或者某持某一个版本;
2.项目越来越大的时候,给别人看的时候,没有必要再次共享我们引用的第三方模块。

我们可以用package.json来管理依赖。
在cmd中,使用npm init可以初始化一个package.json文件,用回答问题的方式生成一个新的package.json文件。

require()别的js文件的时候,将执行那个js文件。

注意:

require()中的路径,是从当前这个js文件出发,找到别人。而fs是从命令提示符找到别人。
而fs是从命令提示符找到别人。
而fs是从命令提示符找到别人。
而fs是从命令提示符找到别人。
fs等其他的模块用到路径的时候,都是相对于cmd命令光标所在位置。

所以,桌面上有一个a.js, test文件夹中有b.js、c.js、1.txt
a要引用b:
1 var b = require(“./test/b.js”);
b要引用c:
1 var b = require(“./c.js”);

但是,fs等其他的模块用到路径的时候,都是相对于cmd命令光标所在位置。
所以,在b.js中想读1.txt文件,推荐用绝对路径:
1 fs.readFile(__dirname + "/1.txt",function(err,data){
2 if(err) { throw err; }
3 console.log(data.toString());
4 });

post请求

var alldata = "";
2           //下面是post请求接收的一个公式
3           //node为了追求极致,它是一个小段一个小段接收的。
4           //接受了一小段,可能就给别人去服务了。防止一个过大的表单阻塞了整个进程
5           req.addListener("data",function(chunk){
6               alldata += chunk;
7           });
8           //全部传输完毕
9           req.addListener("end",function(){
10              console.log(alldata.toString());
11              res.end("success");
12          });

====================================
原生写POST处理,比较复杂,要写两个监听。文件上传业务比较难写。
所以,用第三方模块。formidable

只要涉及文件上传,那么form标签要加一个属性:
<form action="http://127.0.0.1/dopost" method="post" enctype="multipart/form-data">

<a href="<%= url %>"><img src="<%= imageURL %>" alt=""></a>

数据绑定,就成为一个完整的html字符串了。
前台的模板,我们现在要学习的是后台的模板。
后台模板,著名的有两个,第一个叫做ejs; 第二个叫做jade。

是npm第三方包。

=================================================

var http = require("http");
var fs = require("fs");
var url = require("url");
var path = require("path");
http.createServer(function(req, res){//发送http头部ͷ//http状态值:200//内容类型:text/htmlvar href = url.parse(req.url);var pathname = href.pathname;if(pathname.indexOf('.')==-1){pathname+="/index.html";}var extname = path.extname(pathname);var fileURL = "./static" + pathname;console.log(req.url);//console.log(href);   //是一个Url 对象//发送响应数据fs.readFile(fileURL,function(err,data){if(err){throw Error("f");return;}getmimeName(extname,function(mime){res.writeHead(200, {'Content-Type': mime+';charset=UTF8'});res.end(data);})})//后台终端打印信息}).listen(3000,"127.0.0.1");
function getmimeName(extname,callback){fs.readFile("./mime.json",function(err,jsondata) {if (err) {throw Error("找不到json");return;}var mimejson = JSON.parse(jsondata);callback(mimejson[extname]);});
}

=================================

转载于:https://www.cnblogs.com/czy16/p/8508260.html

九阴真经 第十五层--node.js 第2天相关推荐

  1. 九阴真经 第十五层--node.js 第1天

    Node.js 修炼 node.js 官网 https://nodejs.org/zh-cn/ node.js API http://nodejs.cn/api/ 笔记: Javascript语言将任 ...

  2. JavaScript 编程精解 中文第三版 二十、Node.js

    二十.Node.js 原文:Node.js 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了<JavaScript 编程精解(第 2 版)> A stude ...

  3. 十大 Node.js 的 Web 框架,快速提升工作效率

    Node.js 系统含有多种不同的结构,如 MVC.全栈.REST API 和生成器等.这些结构不仅提升了 Web 应用的开发效率,也优化了开发过程.在这里,我们收集整理了十个高效的 Node.js ...

  4. 二十六、深入Node.js中的文件系统fs模块

    @Author:Runsen @Date:2020/6/8 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...

  5. SAP UI5 应用开发教程之五十五 - 如何将本地 SAP UI5 应用通过 Node.js Express 部署到公网上试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  6. SAP UI5 应用开发教程之五十五 - 如何将本地 SAP UI5 应用通过 Node.js Express 部署到公网上

    本教程迄今为止的前 54 个步骤,开发出来的 SAP UI5 应用都只能在本地通过 localhost 访问,除非将其部署到 ABAP 服务器上. SAP UI5 应用开发教程之三十五 - 如何把本地 ...

  7. Node.js之十大Web框架

    Node.js之十大Web框架 之前接触过Node.js是因为好奇大前端越来越能干了,连我后台的饭碗都要抢了,太嚣张了,于是我想打压打压它,然后就这样接触它了. 再到后来是因为Settings-Syn ...

  8. 十年 | 我花了十年,才弄明白了Node.js

    Hello! 我是小小,今天是本周的第五篇,昨天一篇送书了,送的怎么样呢,欢迎下方留言哦! 大概所有的人都有一种屌丝变身高富帅的想法吧.可以这样的说,几乎所有的人,都肯定有过一夜暴富的想法.别捂脸,过 ...

  9. 腾讯云十亿级 Node.js 网关的架构设计与工程实践

    作者|王伟嘉 编辑|孙瑞瑞 本文由 InfoQ 整理自腾讯云 CloudBase 前端负责人王伟嘉在 GMTC 全球大前端技术大会(深圳站)2021 上的演讲<十亿级 Node.js 网关的架构 ...

最新文章

  1. 2021-2027年中国透明导电膜玻璃行业市场研究及前瞻分析报告
  2. 【bzoj3209】 花神的数论题
  3. python同时显示多个图片可以在plt.imshow(image)后执行plt.show()
  4. C# Revert 单词反转字符串!『测试通过』
  5. Spring AOP 源码分析 - 拦截器链的执行过程
  6. Linux sar性能分析
  7. python学习笔记(十一)——正则表达式
  8. Could not find a suitable table factory for ‘org.apache.flink.table.factories.TableSourceFactory‘
  9. 一维卷积详细解释(转载+自己笔记)
  10. php三维数组转换二维数组,php 三维数组转二维数组(多维数组变合拼二维数组)(foreach循环 数组叠加)...
  11. Atom飞行手册翻译: 4.1 配置API
  12. python-两种方法实现:从字符串中找出 出现次数最多的 字母和 对应出现的个数
  13. “新闻”频道“最新更新”有问题吗?
  14. 《从零开始学Swift》学习笔记(Day 45)——重写方法
  15. 关于CF平台中基础服务的监控方案
  16. 【云计算】云的七大分类定义说明
  17. 大数据分析-第十一章 图挖掘-动机,应用和算法
  18. RC正弦波振荡电路Ltspice仿真
  19. 一步一步教你写股票走势图——分时图三(对齐图表、自定义高亮)
  20. Retinanet论文解读

热门文章

  1. 【《Effective C#》提炼总结】提高Unity中C#代码质量的21条准则
  2. 使用StringWriter和StringReader的好处
  3. CPython对象模型:整型
  4. 详细回复某个CSDN网友,对我的文章和技术实力以及CSDN的吐槽
  5. python内置函数中的zip,max,min函数例子
  6. Mysql Insert Or Update语法实例
  7. location.search
  8. 某大型企业私有云建设思路解析
  9. javascript面向对象包装类Class的类库解析
  10. hadoop 伪分布模式