使用node.js开发博客_使用node开发博客_风里有诗句哈的博客-程序员秘密

技术标签: node.js  

ECMAScript是语法规范

nodejs = ECMAScript + nodejsAPI,可完成服务端的任何操作

js = ECMAScript + WebAPI

common.js是nodejs的模块化规范

使用方法

a.js中写入

function add(a, b) {
  return a + b;
}

module.exports = add;

b.js中写入 

var add = require("./a");
var sum = add(10, 20);
console.log(sum);

在终端执行 node b.js 输出30

导出多个模块

a.js中写入

function add(a, b) {
  return a + b;
}
function mul(a, b) {
  return a * b;
}

module.exports = { add, mul };

b.js中导出模块

var { add, mul } = require("./a");

上面代码相当于

var ops = require("./a");
var add = ops.add;
var mul = ops.mul;

注意导出模块的名字必须与导入的模块名字相同

导入其他插件

初始化npm环境

npm init -y

安装lodash

npm i lodash

导入方式相同

var _ = require("lodash");

开发接口(不用任何框架)

nodejs是如何处理http请求

http请求概述

1.客户端DNS解析,建立TCP连接,发送http请求

2.server端接收http请求,处理,并返回

3.客户端接收到返回的数据,处理数据(如渲染页面,执行js) 

注:

DNS解析:我们访问的网址如百度,是一个域名,这个域名通过DNS解析为对应的一个ip地址,客户端找到IP地址后会进行TCP连接

nodejs处理路由

var http = require("http");
var queryString = require("querystring");

var server = http.createServer((req, res) => {
  var url = req.url;
  var path = url.split("?")[0];
  req.query = queryString.parse(url.split("?")[1]);
});

nodejs处理get请求

var http = require("http");
var queryString = require("querystring");

var server = http.createServer((req, res) => {
  var method = req.method;
  console.log(method);
  var url = req.url;
  req.query = queryString.parse(url.split("?")[1]);
  res.end(JSON.stringify(req.query));
});

server.listen(8080, function() {
  console.log("listening on 8080");
});

nodejs处理post请求 

使用postman插件,百度搜postman chrome crx 下载 或直接下载postman app

var http = require("http");
var queryString = require("querystring");

var server = http.createServer((req, res) => {
  if (req.method === "POST") {
    console.log("content-type", req.headers["content-type"]);
  }
  var postData = "";
  res.on("data", function(chunk) {
    postData += chunk.toString();
  });
  res.on("end", function() {
    console.log(postData);
    res.end(JSON.stringify(postData));
  });
});

server.listen(8080, function() {
  console.log("listening on 8080");
});

nodejs处理返回响应的格式

// 设置返回的格式为json
res.setHeader('Content-type','application/json')

搭建开发环境

使用nodeMon监测文件变化,自动重启node

使用cross-env设置环境变量,兼容mac linux和windows

开发接口(暂不连接数据库,暂不考虑登录)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Vansal/article/details/102157487

智能推荐

java小工具(一)获取不带后缀的文件名_pangPython的博客-程序员秘密

java小工具(一)获取不带后缀的文件名//获取不带后缀名的文件名 public static String getFileNameWithoutSuffix(File file){ String file_name = file.getName(); return file_name.substring(0, file_name.lastIndexOf(".

浏览器播放RTSP格式视频流的解决方法_1162210866的博客-程序员秘密

浏览器播放RTSP格式视频流的解决方法   公司最近在做一个和摄像头有关的项目,我也参与了一些边边角角的事情,下面就来说一说我做的一些事情。  公司采用的是海康威视的摄像头,海康威视还是可以的,他会给客户提供一个摄像头web的管理系统,用户其实使用这个管理系统就可以完成基本的需求了,海康威视的提供还是比较充分的。可能有些开发者对于这个管理系统还是不够满足,想要自己...

mysql在windows和linux下安装_weixin_34295316的博客-程序员秘密

为什么80%的码农都做不了架构师?>>> ...

CentOS7.4安装P4/P40驱动_weixin_30827565的博客-程序员秘密

插卡安装系统的时候需要注意安装的时候就要禁用nouveau驱动1、插卡安装系统时,在如下界面按Tab键编辑,插入参数nouveau.modeset=0禁用nouveau驱动,按enter键继续安装,此截图为Legacy模式;UEFI模式类似在vmlinuz行末尾加入以上参数,按ctrl+X键继续安装。由于此方法只能单次禁用该驱动,安装完操作系统重启后无法进入图形界面,请按2...

Wireshark网络抓包(四)——工具_tcptrace和stevens_pvxv1bbl的博客-程序员秘密

一、基本信息统计工具1)捕获文件属性(Summary)1. File:了解抓包文件的各种属性,例如抓包文件的名称、路径、文件所含数据包的规模等信息2. Time:获悉抓包的开始、结束和持续时间3. Capture:抓包文件由哪块网卡生成、OS版本、Wireshark版本等信息4. Display:剩下的是汇总统计信息,数据包的总数、数量以及占比情况、网速等2)协议分级(

高质量web前端后台模板_后台前端模板_后台模板的博客-程序员秘密

Web前端框架就是为了节约开发成本和时间,一般开发一个项目都会用到前端框架(除非自己有前端开发团队),根据我经验找的几款web前端框架做出了分析。都是个人意见,仁者见仁智者见智。inspinia admin演示 http://cn.inspinia.cnQUICK UIQUICK UI是一套完整的企业级web前端开发解决方案,由基础框架、UI组件库、皮肤包、示例工程和文档...

随便推点

npm ERR path /Users/user/Desktop/app/node_modules/node-sass-程序员秘密

打开项目 执行 npm i 报了一大堆错.看到有node-sass字样,然后用的node版本是v16.12.0.想到以前的node版本较低时可以安装.用nvm切换node版本到12.16.2 ,再安装就可以了.nvm 安装:1.https://zhuanlan.zhihu.com/p/3660597542.http://nvm.uihtm.com...

不怕面试被问了!二叉树算法大盘点_AI科技大本营的博客-程序员秘密

作者 |BoCong-Deng题图 | 视觉中国出品 | 程序员秘密树结构对于程序员来说应该不陌生,特别是二叉树,基本只要接触算法这一类的都一定会碰到的,所以我打算通过一篇文章,对二...

【ubuntu】Ubuntu中Android SDK下载跟配置_ubuntu android sdk下载_ipfpm的博客-程序员秘密

(1)下载SDK: SDK下载网址(2)解压下载的压缩包android/sdk$ tar -zxvf android-sdk_r24.4.1-linux.tgz (3)安装32位库sudo apt-get install -y libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1(4)配置环境变量:在命令终端...

[转]英文标点符号及部分数学符号_aifan2794的博客-程序员秘密

邻近年假,人也不在状态,在办公室看《JavaScript高级程序设计第3版本》,看到部分标点符号不知道用英文怎么翻译和阅读,所以Google了一把,参考了标点符号的英语名称[1]和英文标点符号翻译大全[2],一并加上英语读音,方便以后的使用过程中查找与参考。符号英文读音含义备注+plus[plʌs]加号;正号备注-minus[...

hdu 1172 猜数字_anque1234的博客-程序员秘密

猜数字Time Limit: 20000/10000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2373Accepted Submission(s): 1374Problem Description猜数字游戏是gameboy最喜欢的游戏之一。游戏的...

推荐文章

热门文章

相关标签