NodeJS入门简介

二、模块

  在Node.js中,以模块为单位划分所有功能,并且提供了一个完整的模块加载机制,这时的我们可以将应用程序划分为各个不同的部分。

  const http = require('http');通过require函数来添加;

  Ps:加载系统模块(node_modules中的模块)只需要写模块名即可,加载自定义模块则需要填写路径;

  不可能用一个js文件去写全部的业务。肯定要有MVC。

  关于模块,狭义的说,每一个JavaScript文件都是一个模块;而多个JavaScript文件之间可以相互require,他们共同实现了一个功能,他们整体对外,又称为一个广义上的模块。

  Node.js中,每一个js文件都相当于一个命名空间,一个JavaScript文件中定义的变量、函数,都只在这个文件内部有效。当需要从此JS文件外部引用这些变量、函数时,必须使用exports对象进行暴露。使用者要用require()命令引用这个JS文件。

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

  模块就是一些功能的封装,所以一些成熟的、经常使用的功能,都有人封装成为了模块。并且放到了社区中,供人免费下载。

  https://www.npmjs.com/     npm社区

  注意:

  require()中的路径,是从当前这个js文件出发,找到别人。而fs是从命令提示符找到别人。

  所以,桌面上有一个a.js, test文件夹中有b.js、c.js、1.txt

  a要引用b:

var b = require(“./test/b.js”);

  b要引用c:

var b = require(“./c.js”);

  但是,fs等其他的模块用到路径的时候,都是相对于cmd命令光标所在位置。

  所以,在b.js中想读1.txt文件,推荐用绝对路径:

fs.readFile(__dirname + "/1.txt",function(err,data){

// __dirname变量获取当前模块文件所在目录的完整绝对路径。

if(err) { throw err; }

console.log(data.toString());

});

  三、post请求

  

 var post = “”;

   req.addListener("data",function(chunk){  // 监听data事件

   alldata += chunk;  

   //node 接受post请求都是一小段一小段接收的

   //通过监听data事件将post请求整理拼接完成

             });

         //全部传输完毕

             req.addListener("end",function(){   //监听end事件

                 console.log(alldata.toString());  //接收完毕后处理请求

            res.end("success");

        });

原生写POST处理,比较复杂,要写两个监听。文件上传业务比较难写。

所以,用第三方模块。formidable。

Ps:只要涉及文件上传,那么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。

1、   EJS

  EJS全称Embedded JavaScript templates。是一个后台模板引擎;

  语法:

 <ul>

        <% for(var i = 0 ; i < news.length ; i++){ %>

            <li><%= news[i] %></li>

        <% } %>

</ul>

var dictionary = {

          a:6,

          news : ["哈哈哈","嘻嘻嘻","嘿嘿嘿"]

};

  

  然后通过ejs.render()方法将两个整合在一起,第一个参数为:字符串,第二个参数为一个对象

2、   Jade

  

http://www.jianshu.com/p/e2a9cd3b7e56

  模板仅供了解,有兴趣请自行百度

NodeJS入门简介的更多相关文章

  1. nodejs入门教程之http的get和request简介及应用

    nodejs入门教程之http的get和request简介及应用 前言 上一篇文章,我介绍了nodejs的几个常用的模块及简单的案例,今天我们再来重点看一下nodejs的http模块,关于http模块 ...

  2. nodeJs 5.0.0 安装配置与nodeJs入门例子学习

    新手学习笔记,高手请自动略过 安装可以先看这篇:http://blog.csdn.net/bushizhuanjia/article/details/7915017 1.首先到官网去下载exe,或者m ...

  3. NodeJS入门(四)—— path对象

    很快Node就会迎来4.0的时代,届时将并入现有的iojs,所以先前写过的iojs入门系列直接更名为NodeJS入门. 本篇开始将逐个介绍Node的各主要模块,依循API文档走一遍,但会给出比API文 ...

  4. 掌握 Ajax,第 1 部分: Ajax 入门简介

    转:http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro1.html 掌握 Ajax,第 1 部分: Ajax 入门简介 理解 Ajax 及其工作 ...

  5. MongoDB入门简介

    MongoDB入门简介 http://blog.csdn.net/lolinzhang/article/details/4353699 有关于MongoDB的资料现在较少,且大多为英文网站,以上内容大 ...

  6. (转)Web Service入门简介(一个简单的WebService示例)

    Web Service入门简介 一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从I ...

  7. 01.Nodejs入门之Helloworld

    说明:本文章可供有一定js基础的朋友参考nodejs入门,本文未讲解nodejs的安装,如有需要的同学可以加QQ3382260752找我,进行交流学习. 1.新建文件夹helloworld demo, ...

  8. ASP.NET Core学习之一 入门简介

    一.入门简介 在学习之前,要先了解ASP.NET Core是什么?为什么?很多人学习新技术功利心很重,恨不得立马就学会了. 其实,那样做很不好,马马虎虎,联系过程中又花费非常多的时间去解决所遇到的“问 ...

  9. webservice入门简介

    为了梦想,努力奋斗! 追求卓越,成功就会在不经意间追上你 webservice入门简介 1.什么是webservice? webservice是一种跨编程语言和跨操作系统平台的远程调用技术. 所谓的远 ...

随机推荐

  1. C++第一篇--类的引入

    C++第一篇--类的引入 1. 用C语言输出两个人的信息 Person1.c:通过字符实现 #include <stdio.h> int main(int argc,int **argv) ...

  2. Phpcms 前台页面实现分页

    phpcms开发就是模仿里面原有的方法进行扩展,前台要实现分页,就去找后台页面的分页实现. 如后台 扩展->后台操作日志,就有分页展示. 1.先去添加自己的分页方法(千万不要在原来的方法上修改, ...

  3. hdu_5868:Different Circle Permutation

    似乎是比较基础的一道用到polya定理的题,为了这道题扣了半天组合数学和数论. 等价的题意:可以当成是给正n边形的顶点染色,旋转同构,两种颜色,假设是红蓝,相邻顶点不能同时为蓝. 大概思路:在不考虑旋 ...

  4. [C++ Calculator 项目] 文件读入与可视化实现

    Calculator V1.1 注:这是C++计算器项目第三.四部分-文件读写与可视化 [基于原代码重构而得] 源文件已上传至Github 文件读写 可视化 文件读写: Ⅰ.在原基础代码上增加了-f参 ...

  5. .Net Core 系列:2、ADO.Net 基础

    目录: 1.环境搭建 2.ADO.Net 基础 3.ASP.Net Core 基础 4.MD5.Sha256.AES 加密 5.实现登录注册功能 6.实现目录管理功能 7.实现文章发布.编辑.阅览和删 ...

  6. myeclipse项目部署到idea常见问题

    由于myeclipse是付费产品,经过几次破解不成功后,遂弃之,转投IntelliJ IDEA门下.但这就出现一个问题了,以前用的eclipse.myeclipse以及spring tools sui ...

  7. python cookbook第三版学习笔记十三:类和对象(三)描述器

    __get__以及__set__:假设T是一个类,t是他的实例,d是它的一个描述器属性.读取属性的时候T.d返回的是d.__get__(None,T),t.d返回的是d.__get__(t,T).说法 ...

  8. 测试环境-memcached安装与说明

    一,下载memcached和libevent安装包: 1,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent (这两个包百度上都能找到) 二,安装lib ...

  9. vue指令v-cloak示例解析

    v-cloak会隐藏未编译的 Mustache 标签,直至实例准备完毕: [v-cloak] { display: none; } <div v-cloak> {{ message }} ...

  10. Mysql事务处理详细讲解及完整实例下载

    一.Mysql事务概念 MySQL 事务主要用于处理操作量大,复杂度高的数据.由一步或几步数据库操作序列组成逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行.在 MySQL 中只有使用了 Inn ...