node

vue前端+nodejs后端通讯最简单demo

主宰稳场 提交于 2020-01-19 07:10:01
vue前端+nodejs后端通讯最简单demo 前言 效果演示 技术架构 前端部分 安装部署 前端代码 运行前端终端 后端部分 安装部署 后端代码: 运行后端终端 结语 项目源码 前言 本文记录vue前端+nodejs后端通讯最简单的方法,供广大网友最快速进入全栈开发。 效果演示 本示例效果如下:前端是一个登陆表单,信息提交给后端,后端收到后给前端反馈信息。 技术架构 前端 vue + axios + wepack 后端 nodejs + express 前端部分 安装部署 前端安装vue,方式多种,本文使用vue-cli3 + vue ui图形化安装,具体请百度,命令如下: 安装 vue-cli3: npm i @vue/cli -g vue图形化安装: vue ui 安装 axios 用于和后端通讯: npm i axios -s 前端代码 然后我们打开“App.vue”,把代码改成如下: 建立了一个登陆表单,提交按钮点击后向“http://127.0.0.1:3000/login”这个后端地址post表单数据。 < template > < div > < form method = " post " > 账号 : < input type = " text " id = " name " /> < br /> < br /> 密码 : < input type = "

Kafka学习笔记(4)----Kafka的Leader Election

不打扰是莪最后的温柔 提交于 2020-01-19 06:17:30
1. Zookeeper的基本操作   zookeeper中的节点可以持久化/有序的两个维度分为四种类型:   PERSIST:持久化无序(保存在磁盘中)   PERSIST_SEQUENTIAL:持久化有序递增   EPHEMERAL:非持久化的无序的,保存在内存中,当客户端关闭后消失。   EPHEMERAL_SEQUENTIAL:非持久有序递增,保存在内存中,当客户端关闭后消失   每个节点都可以注册Watch操作,用于监听节点的变化,有四种事件类型如下:   Created event: Enabled with a call to exists   Deleted event: Enabled with a call to exists, getData, and getChildren   Changed event: Enabled with a call to exists and getData   Child event: Enabled with a call to getChildren   Watch的基本特征是客户端先得到通知,然后才能得到数据,Watch被fire之后就立即取消了,不会再有Watch后续变化,想要监听只能重新注册; 使用原生Zookeeper创建节点和监听节点变化代码如下:   1. 引入依赖,pom.xml <dependency>

centos系统web发布环境的配置

微笑、不失礼 提交于 2020-01-19 04:36:28
1.安装nvm(node包管理器) curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash 2.安装node nvm install 10.3.0 3.生成git公钥、查看公钥 ssh-keygen -t rsa -C "123@aa.com" cat ~/.ssh/id_sra.pub 4.nginx的安装与配置 yum install nginx -y // 安装nginx // 编辑nginx.conf文件 server { listen port; # 端口号 server_name Ip; #服务器IP地址 index index.html index.htm index.php; root /var/www/money/dist; # 发布的项目地址 location / { try_files $uri $uri/ /index.html; index index.html; } } 来源: CSDN 作者: guo_1991 链接: https://blog.csdn.net/guo_1991/article/details/103952915

Node.js的模块载入方式与机制

拈花ヽ惹草 提交于 2020-01-19 04:07:03
Node.js中模块可以通过文件路径或名字获取模块的引用。模块的引用会映射到一个js文件路径,除非它是一个Node内置模块。Node的内置模块公开了一些常用的API给开发者,并且它们在Node进程开始的时候就预加载了。 其它的如通过NPM安装的第三方模块(third-party modules)或本地模块(local modules),每个模块都会暴露一个公开的API。以便开发者可以导入。如 var mod = require('module_name') 此句执行后,Node内部会载入内置模块或通过NPM安装的模块。require函数会返回一个对象,该对象公开的API可能是函数,对象,或者属性如函数,数组,甚至任意类型的JS对象。 这里列下node模块的载入及缓存机制 载入内置模块(A Core Module) 载入文件模块(A File Module) 载入文件目录模块(A Folder Module) 载入node_modules里的模块 自动缓存已载入模块 一、载入内置模块 Node的内置模块被编译为二进制形式,引用时直接使用名字而非文件路径。当第三方的模块和内置模块同名时,内置模块将覆盖第三方同名模块。因此命名时需要注意不要和内置模块同名。如获取一个http模块 var http = require('http') 返回的http即是实现了HTTP功能Node的内置模块。

xml文件通过Xpath获取节点的值

∥☆過路亽.° 提交于 2020-01-19 03:38:24
介绍xml文件通过Xpath获取节点的值 调用示例: object str = CommonHelper.GetNodeInnerTextFromNodeByXpath(node.ParentNode, "/BODY/ZSXM"); 通用代码如下: /// <summary> /// 根据Xpath获取CDATA中的值 /// </summary> /// <param name="strXmlText">xml字符串</param> /// <param name="strXpath">Xpath表达式</param> /// <returns></returns> public static string GetCDataInnerText(string strXmlText, string strXpath) { string strResult = string.Empty; XmlDocument doc = new XmlDocument { InnerXml = strXmlText }; XmlNode nDataNode = doc.SelectSingleNode(strXpath); if (!Equals(nDataNode, null)) { if (nDataNode.HasChildNodes) { if (nDataNode.FirstChild

数据结构专题——链表处理A1052.Linked List Sorting(25) (静态链表)

荒凉一梦 提交于 2020-01-19 00:39:59
自己写的,少了异常处理。 #include <bits/stdc++.h> #include<math.h> #include <string> using namespace std; const int maxn = 100010; struct Node{//定义静态链表 int data; int address; int next; bool flag; }node[maxn]; bool cmp(Node a,Node b){ //return a.data < b.data; if(a.flag != b.flag){ return a.flag > b.flag; }else{ return a.data < b.data; } } int main(){ int n,addre; scanf("%d%d",&n,&addre); int add,d,nex; for(int i=0;i<n;++i){ scanf("%d%d%d",&add,&d,&nex); node[add].data = d; node[add].next = nex; node[add].flag = true; node[add].address = add; } sort(node,node+maxn,cmp); printf("%d %05d\n",n,node[0].address

NodeJS提升性能

五迷三道 提交于 2020-01-18 23:50:25
NodeJS提升性能 如需转载请标明出处: http://blog.csdn.net/itas109 QQ技术交流群: 129518033 文章目录 NodeJS提升性能 @[toc] 1.单机 1.1尽量使用异步 1.2 缓存 1.3 gzip压缩 1.4 减少使用JSON序列化与反序列化 1.5 适当使用多线程或多进程 1.6 日志优化 1.7 使用模板引擎 1.8 资源文件压缩 2.其他 2.1 负载均衡 2.2 水平扩展 2.2.1 本机集群模式 2.2.2 PM2进程管理 相关问题: 1.单机 1.1尽量使用异步 同步操作会阻塞主线程,降低性能 1.2 缓存 将一些不经常变化的数据缓存(内存或redis)起来,可以改善性能 1.3 gzip压缩 压缩可以使数据更快的到达前端 1.4 减少使用JSON序列化与反序列化 尽可能直接使用Object,不要转换成string 1.5 适当使用多线程或多进程 Node 12.12.0以上版本workthread已经为稳定版本 1.6 日志优化 生产版本可以关掉不必要的日志打印 1.7 使用模板引擎 如使用ejs模板渲染成html页面后返回给浏览器,并可以开启缓存 1.8 资源文件压缩 例如图片可以进行压缩 2.其他 2.1 负载均衡 Nginx HAProxy 2.2 水平扩展 2.2.1 本机集群模式 本地 Node.js

阻塞队列BlockingQueue之LinkedBlokingQueue

◇◆丶佛笑我妖孽 提交于 2020-01-18 22:11:40
1、简介 LinkedBlokingQueue 是链表实现的有界阻塞队列,此队列的默认和最大长度为 Integer.MAX_VALUE。此队列按照先进先出的原则对元素进行排序。ArrayList和ArrayBlockingQueue一样,内部基于数组来存放元素,而LinkedBlockingQueue则和LinkedList一样,内部基于链表来存放元素。 2、源码分析 2.1、属性 /** * 节点类,用于存储数据 */ static class Node<E> { E item; Node<E> next; Node(E x) { item = x; } } /** 阻塞队列的大小,默认为Integer.MAX_VALUE */ private final int capacity; /** 当前阻塞队列中的元素个数 */ private final AtomicInteger count = new AtomicInteger(); /** * 阻塞队列的头结点 */ transient Node<E> head; /** * 阻塞队列的尾节点 */ private transient Node<E> last; /** 获取并移除元素时使用的锁,如take, poll, etc */ private final ReentrantLock takeLock = new

nodejs npm常用命令

依然范特西╮ 提交于 2020-01-18 21:58:23
npm是一个node包管理和分发工具,已经成为了非官方的发布node模块(包)的标准。有了npm,可以很快的找到特定服务要使用的包,进行下载、安装以及管理已经安装的包。 1、npm install moduleNames:安装Node模块 安装完毕后会产生一个node_modules目录,其目录下就是安装的各个node模块。 node的安装分为全局模式和本地模式。 一般情况下会以本地模式运行,包会被安装到和你的应用程序代码的本地node_modules目录下。 在全局模式下,Node包会被安装到Node的安装目录下的node_modules下。 全局安装命令为$npm install -g moduleName。 获知使用$npm set global=true来设定安装模式,$npm get global可以查看当前使用的安装模式。 示例: npm install express 默认会安装express的最新版本,也可以通过在后面加版本号的方式安装指定版本,如npm install express@3.0.6 npm install <name> -g 将包安装到全局环境中 但是代码中,直接通过require()的方式是没有办法调用全局安装的包的。全局的安装是供命令行使用的,就好像全局安装了vmarket后,就可以在命令行中直接运行vm命令 npm install <name>

React16源码解读:揭秘ReactDOM.render

筅森魡賤 提交于 2020-01-18 17:22:45
引言 在 上一篇文章 中我们通过 create-react-app 脚手架快速搭建了一个简单的示例,并基于该示例讲解了在类组件中 React.Component 和 React.PureComponent 背后的实现原理。同时我们也了解到,通过使用Babel预置工具包 @babel/preset-react 可以将类组件中 render 方法的返回值和函数定义组件中的返回值转换成使用 React.createElement 方法包装而成的多层嵌套结构,并基于源码逐行分析了 React.createElement 方法背后的实现过程和 ReactElement 构造函数的成员结构,最后根据分析结果总结出了几道面试中可能会碰到或者自己以前遇到过的面试考点。上篇文章中的内容相对而言还是比较简单基础,主要是为本文以及后续的任务调度相关内容打下基础,帮助我们更好地理解源码的用意。本文就结合上篇文章的基础内容,从组件渲染的入口点 ReactDOM.render 方法开始,一步一步深入源码,揭秘 ReactDOM.render 方法背后的实现原理,如有错误,还请指出。 源码中有很多判断类似__DEV__变量的控制语句,用于区分开发环境和生产环境,笔者在阅读源码的过程中不太关心这些内容,就直接略过了,有兴趣的小伙伴儿可以自己研究研究。 render VS hydrate