Nodejs+Extjs+Mongodb开发第一天 Nodejs环境搭建

2023-10-27

一、装备

我个人PC环境是Ubuntu14+JDK7,所以下面的步骤及问题也是基于此进行及产生的。

 

二、Nodejs及npm的安装

这个安装的过程在网上有很多教程,这里就不详细讲了。

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. $ sudo apt-get install python   
  2.   
  3. $ sudo apt-get install build-essential   
  4.   
  5. $ sudo apt-get install gcc   
  6.   
  7. $ sudo apt-get install g++   
  8.   
  9. $ sudo apt-get install nodejs  
  10.   
  11. $ sudo apt-get install npm  

查看Nodejs的版本,网上很多教程都写的是:

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. node -v  


但一直node命令找不到的异常,使用以下命令执行成功:

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. nodejs -v  


终端显示:

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. v0.10.25  


经测试,ubuntu下Nodejs的命令是nodejs,而windows平台的是node。


查看npm版本是

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. npm -v   
  2. 1.3.10  

三、使用npm来安装supervisor工具及express框架

1、supervisor 

简单介绍:


在开发 Node.js 实现的 HTTP 应用时会发现,无论你修改了代码的哪一部份,都必须终止 Node.js 再重新运行才会奏效。这是因为 Node.js 只有在第一次引用到某部份时才会去解析脚 本文件,以后都会直接访问内存,避免重复载入。Node.js的这种设计虽然有利于提高性能,却不利于开发调试,因 为我们在开发过程中总是希望修改后立即看到效果,而不是每次都要终止进程并重启。

supervisor 可以帮助你实现这个功能,它会监视你对代码的改动,并自动重启 Node.js。

a) 全局安装 (我的选择)

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. npm install supervisor -gd  


b) 安装在当前文件夹下 

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. npm install supervisor  


安装成功后,命令行会提示 npm info ok

 

-g代表安装到NODE_PATH的lib里面,而-d代表把相依性套件也一起安装。如果沒有-g的话会安装目前所在的目录(会建立一个node_modules的文件夹)。

 

通过以下命令了查看supervisor的帮助文档,

 

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. supervisor -hellp   

 

终端显示:

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. /usr/bin/env: node: 没有那个文件或目录  


经查找后,发现npm在安装模块的时候,会把源码及执行文件分开。

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. /usr/local/lib/node_modules  源码目录  
  2. /usr/local/bin  执行文件目录  


注意:这里也是和网上的大部分教程不一样的地方,网上的教程都说源码及执行文件都是放在/usr/local/lib/node_modules 目录下的,估计是npm版本不同的原因。

 

找到并查看supervisor的执行文件:

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. #!/usr/bin/env node   
  2. var path = require("path")   
  3.   , fs = require("fs")   
  4.   , args = process.argv.slice(1)   
  5.   
  6. var arg, base;   
  7. do arg = args.shift();   
  8. while ( fs.realpathSync(arg) !== __filename   
  9.   && (base = path.basename(arg)) !== "node-supervisor"   
  10.   && base !== "supervisor"   
  11.   && base !== "supervisor.js"   
  12. )   
  13.   
  14. require("./supervisor").run(args)  


看到supervisor的介绍,我们很容易得知,这个小模块的主要功能有两个:

1、关闭正在执行的项目

2、启动前面关闭的项目


这里报的错误是没有找到node,而且很清楚地发现执行文件的第一行使用的命令是!/usr/bin/env node ,回想前面查看Nodejs版本的命令。项目启动用到的应该是Nodejs本身的命令nodejs,

于是将这一行修改如下进行尝试,问题得到解决。

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. #!/usr/bin/env nodejs  

终端显示supervisor的帮助如下:

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. Node Supervisor is used to restart programs when they crash.   
  2.   
  3. It can also be used to restart programs when a *.js file changes.   
  4.   
  5.   
  6.   
  7. Usage:   
  8.   
  9.   supervisor [options] <program>   
  10.   
  11.   supervisor [options] -- <program> [args ...]   
  12.   
  13.   
  14.   
  15. Required:   
  16.   
  17.   <program>   
  18.   
  19.     The program to run.   
  20.   
  21.   
  22.   
  23. Options:   
  24.   
  25.   -w|--watch <watchItems>   
  26.   
  27.     A comma-delimited list of folders or js files to watch for changes.   
  28.   
  29.     When a change to a js file occurs, reload the program   
  30.   
  31.     Default is '.'   
  32.   
  33.   
  34.   
  35.   -i|--ignore <ignoreItems>   
  36.   
  37.     A comma-delimited list of folders to ignore for changes.   
  38.   
  39.     No default   
  40.   
  41.   
  42.   
  43.   -p|--poll-interval <milliseconds>   
  44.   
  45.     How often to poll watched files for changes.   
  46.   
  47.     Defaults to Node default.   
  48.   
  49.   
  50.    
  51.   -e|--extensions <extensions>   
  52.   
  53.     Specific file extensions to watch in addition to defaults.   
  54.   
  55.     Used when --watch option includes folders   
  56.   
  57.     Default is 'node,js'   
  58.   
  59.   
  60.   
  61.   -x|--exec <executable>   
  62.   
  63.     The executable that runs the specified program.   
  64.   
  65.     Default is 'node'   
  66.   
  67.   
  68.   
  69.   --debug   
  70.   
  71.     Start node with --debug flag.   
  72.   
  73.   
  74.   
  75.   --debug-brk[=port]   
  76.   
  77.     Start node with --debug-brk[=port] flag.   
  78.   
  79.   
  80.   
  81.   --harmony   
  82.   
  83.     Start node with --harmony flag.   
  84.   
  85.   
  86.   
  87.   -n|--no-restart-on error|exit   
  88.   
  89.     Don't automatically restart the supervised program if it ends.   
  90.   
  91.     Supervisor will wait for a change in the source files.   
  92.   
  93.     If "error", an exit code of 0 will still restart.   
  94.   
  95.     If "exit", no restart regardless of exit code.   
  96.   
  97.   
  98.   
  99.   --force-watch   
  100.   
  101.     Use fs.watch instead of fs.watchFile.   
  102.    
  103.     This may be useful if you see a high cpu load on a windows machine.   
  104.   
  105.   
  106.   
  107.   -h|--help|-?   
  108.   
  109.     Display these usage instructions.   
  110.   
  111.   
  112.   
  113.   -q|--quiet   
  114.   
  115.     Suppress DEBUG messages   
  116.   
  117.   
  118.   
  119.   -V|--verbose   
  120.   
  121.     Show extra DEBUG messages   
  122.   
  123.   
  124.   
  125. Examples:   
  126.   
  127.   supervisor myapp.js   
  128.   
  129.   supervisor myapp.coffee   
  130.   
  131.   supervisor -w scripts -e myext -x myrunner myapp   
  132.   
  133.   supervisor -- server.js -h host -p port   


注意:根据帮助文档,查看supervisor的命令是supervisor -V 。命令中的V是大写,安装过程中我发现windows下小写也行,但在我的ubuntu14的环境下必须是大写。

2、express 

a) 全局安装 (我的选择)

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. npm install express -gd  


b) 安装在当前文件夹下 

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. npm install  express  

在安装完后,express与supervisor一样,也存在Nodejs命令不符合的问题,同样的方式找到执行文件进行修改此命令即可。

 

安装完了express,如果版本是4.0及以上的话,还要安装另外一个模块,express才能使用。

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. sudo npm install -g express-generator  

四、项目的建立及执行

1、新建一个名称为test的项目

2、使用express框架

cd 到test目录的上级目录,执行以下命令

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. express -e test  

执行完后,回到项目目录查看:

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. node_modules, 存放所有的项目依赖库。   
  2. package.json,项目依赖配置及开发者信息   
  3. app.js,程序启动文件   
  4. public,静态文件(css,js,img)   
  5. routes,路由文件(MVC中的C,controller)   
  6. views,页面文件(Ejs模板)   
  7. bin ,存放默认启动的脚本  

package.json :

 

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. {  
  2.   "name": "pcrm",  
  3.   "version": "0.0.1",  
  4.   "private": true,  
  5.   "scripts": {  
  6.     "start": "node ./bin/www"  
  7.   },  
  8.   "dependencies": {  
  9.     "express": "~4.2.0",  
  10.     "static-favicon": "~1.0.0",  
  11.     "morgan": "~1.0.0",  
  12.     "cookie-parser": "~1.0.1",  
  13.     "body-parser": "~1.0.0",  
  14.     "debug": "~0.7.4",  
  15.     "ejs": "~0.8.5"  
  16.   }  
  17. }  

 

app.js:

 

[javascript]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. var express = require('express');  
  2. var path = require('path');  
  3. var favicon = require('static-favicon');  
  4. var logger = require('morgan');  
  5. var cookieParser = require('cookie-parser');  
  6. var bodyParser = require('body-parser');  
  7.    
  8. var routes = require('./routes/index');  
  9. var users = require('./routes/users');  
  10.    
  11. var app = express();  
  12.    
  13. // view engine setup  
  14. app.set('views', path.join(__dirname, 'views'));  
  15. app.set('view engine''ejs');  
  16.    
  17. app.use(favicon());  
  18. app.use(logger('dev'));  
  19. app.use(bodyParser.json());  
  20. app.use(bodyParser.urlencoded());  
  21. app.use(cookieParser());  
  22. app.use(express.static(path.join(__dirname, 'public')));  
  23.    
  24.    
  25. app.use('/', routes);  
  26. app.use('/users', users);  
  27.    
  28. /// catch 404 and forward to error handler  
  29. app.use(function(req, res, next) {  
  30.     var err = new Error('Not Found');  
  31.     err.status = 404;  
  32.     next(err);  
  33. });  
  34.    
  35. /// error handlers  
  36.    
  37. // development error handler  
  38. // will print stacktrace  
  39. if (app.get('env') === 'development') {  
  40.     app.use(function(err, req, res, next) {  
  41.         res.status(err.status || 500);  
  42.         res.render('error', {  
  43.             message: err.message,  
  44.             error: err  
  45.         });  
  46.     });  
  47. }  
  48.    
  49. // production error handler  
  50. // no stacktraces leaked to user  
  51. app.use(function(err, req, res, next) {  
  52.     res.status(err.status || 500);  
  53.     res.render('error', {  
  54.         message: err.message,  
  55.         error: {}  
  56.     });  
  57. });  
  58.    
  59. module.exports = app;  


bin/www:

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. #!/usr/bin/env node  
  2. var debug = require('debug')('pcrm');  
  3. var app = require('../app');  
  4.    
  5. app.set('port', process.env.PORT || 3000);  
  6.    
  7. var server = app.listen(app.get('port'), function() {  
  8.   debug('Express server listening on port ' + server.address().port);  
  9. });  


3、执行

cd到test目录下

 

执行方法1:

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. npm start  

终端显示异常:

 

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. > test@0.0.1 start /home/benben/workspace/test  
  2. > node ./bin/www  
  3.    
  4. sh: 1: node: not found  
  5. npm ERR! weird error 127  
  6. npm WARN This failure might be due to the use of legacy binary "node"  
  7. npm WARN For further explanations, please read  
  8. /usr/share/doc/nodejs/README.Debian  
  9.    
  10. npm ERR! not ok code 0  

 

还是node命令的问题,修改package.json 文件中的

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. "start": "node ./bin/www"  为  "start": "nodejs ./bin/www"  


 

bin/www文件中的

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. #!/usr/bin/env node 为 #!/usr/bin/env nodejs  

执行成功



npm是什么东西呢?大部分的Java程序员都使用过Maven。而npm的职能与Maven相似,是Nodejs的包管理工具,可以使用它来下载包、查看文件等功能用express创建的应用程序是一个符合CommonJS规范的一个nodejs包npm执行的时候会读取当前目录的package.json文件,这个也就是我上面那个bug出现的原因执行npm start其实是执行package.json中的script对应的对象中的start属性所对应的命令。

 

所以其实如果吧package.json中的start改成test或者其他字符串,然后你在终端敲上npm test/或者其他,程序照样会运行 。

 

其实package.json就是一个配置文件,只是我们之前用的xml格式,但是在nodejs用的是json可以,简单容易理解。从package.json我们可以看出来npm start其实执行的是./bin/www里面是创建一个服务器然后监听3000端口,所以我们可以在浏览器中通过输入"localhost:3000"来访问应用程序。


执行方法2:

npm start 是启用的 /bin/www文件里的脚本 

如果你想用nodejs 启动服务 可以在app.js中添加如下代码 

[javascript]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. app.listen(3000);   


注意:上面的语句得加在module.exports = app;之前。

 

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. nodejs app.js  
 

得到同样的结果。

 

 执行方法3:

 使用supervisor进行热部署的执行方便调试

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. supervisor app.js  


终端显示异常:

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. Running node-supervisor with  
  2.   program 'app.js'  
  3.   --watch '.'  
  4.   --extensions 'node,js'  
  5.   --exec 'node'  
  6.    
  7. Starting child process with 'node app.js'  
  8. execvp(): No such file or directory  
  9. Watching directory '/home/benben/workspace/pcrm' for changes.  
  10.    
  11. events.js:72  
  12.         throw er; // Unhandled 'error' event  
  13.               ^  
  14. Error: spawn ENOENT  
  15.     at errnoException (child_process.js:988:11)  
  16.     at Process.ChildProcess._handle.onexit (child_process.js:779:34)  


 

这里解决的过程就不详细说了,重点是--exec 'node'这个,会发现supervisor执行的还是node命令,而不是nodejs。修改supervisor源文件目录下的supervisor.js文件

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. if (!executor) {   
  2.    executor = (programExt === "coffee" || programExt === "litcoffee") ? "coffee" : "node";   
  3.  }  

[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. if (!executor) {   
  2.    executor = (programExt === "coffee" || programExt === "litcoffee") ? "coffee" : "nodejs";   
  3.  }  


再次执行成功,项目修改后,Nodejs也会自动重启。


五、IDE的选择

一开始选择的是nodeclipse,但用起来确实不怎么完善。于是选择WebStorm。
关于IDE使用及Nodejs的使用,在以后使用的过程中会再发文章记录。


FROM: http://blog.csdn.net/jrainbow/article/details/38845639

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nodejs+Extjs+Mongodb开发第一天 Nodejs环境搭建 的相关文章

  • 智能客流分析:构建智慧出行系统,提升交通效率!

    作者 禅与计算机程序设计艺术 在日益增长的移动互联网应用场景下 越来越多的人选择用智能手机作为主力通讯工具 随之而来的就是智能出行需求的爆发 作为交通运输工具的手机用户越来越多 如何为他们提供高效便捷的出行体验成为当下最重要的问题 移动出行
  • 程序员如何做副业

    有些人问我程序员如何做副业 我有一些经验 但是并不算多 因为我自己也在摸索中 下面我谈谈自己的一些思考和理解 为什么做副业 我认为主要有以下几个好处 副业是一个备用选项 可以让我们尝试如何能不依赖组织 自己创造价值 自己摸索出一条业务 副业
  • Python 多协程爬虫

    1 gevent库 1 1安装 window电脑 pip install gevent mac电脑 pip3 install gevent 1 2 切换协作式运行程序 monkey 也叫猴子补丁 它能给程序打上补丁 让程序变成异步模式 而不
  • C语言学习笔记(九)————函数相关

    1 库函数 需要学会查询工具的使用 MSDN Microsoft Developer Network www cplusplus com http en cppreference com 英文版 http zh cppreference c
  • c++基础十二(数组)

    一维数组 1 定义 2 数组定义方式 1 定义 定义 数组是有序的元素序列 若将有限个类型相同的变量的集合命名 那么这个名称为数组名 组成数组的各个变量称为数组的分量 也称为数组的元素 有时也称为下标变量 用于区分数组的各个元素的数字编号称
  • 10个出色的NoSQL数据库

    虽然NoSQL流行语火起来才短短一年的时间 但是不可否认 现在已经开始了第二代运动 尽管早期的堆栈代码只能算是一种实验 然而现在的系统已经更加的成熟 稳定 不过现在也面临着一个严酷的事实 技术越来越成熟 以至于原来很好的NoSQL数据存储不
  • OpenCV教程——调整图像亮度与对比度,绘制形状和文字

    调整图像亮度与对比度 1 图像变换 图像变换通常有两种方式 像素变换 点操作 邻域操作 区域 调整图像亮度和对比度属于像素变换 点操作 2 调整图像亮度与对比度 可以通过以下公式调整图像的亮度和对比度 g i j f i j 通常情况下有
  • Python脑电图(EEG)青光眼即时诊断神经网络模型

    脑电图 EEG EEG 测量由大脑神经元内的离子电流引起的电压波动 临床上 EEG 是指在一段时间内记录大脑的自发电活动 如从放置在头皮上的多个电极记录的那样 EEG 结果显示大脑活动的变化可能有助于诊断大脑状况 对 EEG 数据集进行目视
  • 有没有20行以内,却很有意思的C语言代码?

    分享一组有趣代码 佛祖 耶稣 龙 键盘 编程序的小伙伴都有过这样的经历 在编完程序的时候都希望自己的程序不会出错 因为出错以后一行一行检查的感觉真的太痛苦了 这里我介绍了一个有意思的代码 可以直接在编辑器里复制进去 保佑自己的代码不出错哈哈
  • 2021_lg_03.SQL实战:如何用sql计算用户留存问题

    如何用sql计算用户留存问题 一 留存 1 留存的含义 留存 指基准日到APP的用户在之后的n日当天返回APP的人数 留存率 基准日之后的n天当日返回的用户数 基准日的用户数 100 或者指基准日产生某个行为的用户在之后的第一天 第二天 第
  • 启动docker服务遇到问题:Job for docker.service failed because the control process exited with error code.

    问题 通过systemctl start docker启动docker服务时 遇到了错误 查看docker serviece后发现 原因 之前修改了 etc docker daemon json文件 添加了dns 114 114 114 1
  • PID控制器开发笔记之十一:专家PID控制器的实现

    前面我们讨论了经典的数字PID控制算法及其常见的改进与补偿算法 基本已经覆盖了无模型和简单模型PID控制经典算法的大部 再接下来的我们将讨论智能PID控制 智能PID控制不同于常规意义下的智能控制 是智能算法与PID控制算法的结合 是基于P
  • 【程序员面试金典】找出缺失的整数

    题目描述 数组A包含了0到n的所有整数 但其中缺失了一个 对于这个问题 我们设定限制 使得一次操作无法取得数组number里某个整数的完整内容 唯一的可用操作是询问数组中第i个元素的二进制的第j位 最低位为第0位 该操作的时间复杂度为常数
  • 项目打包工具使用教程(innosetup)

    夏季小学期的时候用VS2015敲了一个关于WinForm的项目 和C 类似 项目完成之后想把它发布成一个可以在win10系统里直接的程序 而且最好有和我们平时安装软件一样 一步步选择 效果图 首先下载innosetup 网址 https p
  • 转载:MATLAB R2018b 安装教程

    MATLAB R2018b 安装教程 LegendLYC 2019 03 26 22 21 50 46687 收藏 116 分类专栏 安装教程 div class div
  • Java实现:猴子吃桃问题

    Java实现 猴子吃桃问题 文章目录 Java实现 猴子吃桃问题 1 问题 2 解决方案 3 实现代码 4 执行结果 5 解决方法说明 穷举法 1 问题 猴子吃桃问题 有一只猴子第一天摘下若干个桃子 当即吃掉了一半 又多吃了一个 第二天又将
  • TypeError:__init__() got an unexpected keyword argument 'xxx'

    如上图所示 出现此类问题通常是打错了一些英文
  • 浙大PAT 2-13. 两个有序序列的中位数 (解题思路)

    2 13 两个有序序列的中位数 时间限制 40 ms 内存限制 32000 kB 代码长度限制 8000 B 判题程序 Standard 已知有两个等长的非降序序列S1 S2 设计函数求S1与S2并集的中位数 有序序列A0 A1 AN 1的
  • 关于如何自定义docker的网络网段

    在修改docker的网段前 请务必关闭所有正在运行中的容器 编辑文件 etc docker daemon json 如果没有则需要创建 cat daemon json default address pools base 172 40 0

随机推荐

  • Powershell - 环境设置

    PowerShell 图标可以在任务栏和开始菜单中找到 只需点击图标 它就会打开 要打开它 只需单击图标 然后将打开以下屏幕 这意味着 PowerShell 已准备好供你使用 PowerShell 版本 最新版本的 PowerShell 是
  • JDK多版本配置及切换版本不生效问题解决

    一 准备工作 首先你要有多个版本的jdk 如果没有请移至 https www oracle com java technologies downloads 下载 具体下载方法可参考 Java同学入职环境安装全讲解 二 配置环境变量 在环境变
  • es6 实现数组的操作

    1 实现数组的去重 1 1 方法一 let arr id 1 name aa id 2 name bb id 3 name cc id 4 name dd id 5 name ee id 1 name aa id 1 name aa id
  • 医疗产业数字化转型现况及方向

    报告以医疗产业的各种应用场景为切入点 分析不同场景下数字化转型程度和路径 通过对医疗产业数字化整体发展现况的解析 探讨医疗产业链中数字化场景应用所带来的机遇及相应挑战 基于已描绘的医疗产业链数字化转型图谱 挖掘在医疗数字化转型浪潮中做出突出
  • 被问 Linux 命令 su 和 sudo 的区别?当场蒙了!

    tanjuntao github io 之前一直对 su 和 sudo 这两个命令犯迷糊 最近专门搜了这方面的资料 总算是把两者的关系以及用法搞清楚了 这篇文章来系统总结一下 1 准备工作 因为本篇博客中涉及到用户切换 所以我需要提前准备好
  • idea插件生成dao类service类controller类以及mapper.xml

    idea插件生成dao类service类controller类以及mapper xml 安装插件Easycode和MybatisX 不用自己写代码 1 Files Settings Plugins 分别搜索Easycode和MybatisX
  • Redis 持久化之 RDB 与 AOF 详解

    Redis 持久化 我们知道Redis的数据是全部存储在内存中的 如果机器突然GG 那么数据就会全部丢失 因此需要有持久化机制来保证数据不会因为宕机而丢失 Redis 为我们提供了两种持久化方案 一种是基于快照 另外一种是基于 AOF 日志
  • Mysql Group Replication 简介及单主模式组复制配置

    一 Mysql Group Replication简介 Mysql Group Replication MGR 是一个全新的高可用和高扩张的MySQL集群服务 高一致性 基于原生复制及paxos协议的组复制技术 以插件方式提供一致数据安全保
  • 在使用命令行环境下Scala读取输入内容时,输入内容不显示问题(未解决)

    在使用命令行环境下Scala读取输入内容时 输入内容不显示问题 如下图 使用键盘输入任意内容但是命令行没有显示任何内容 但是内容又是可以输出的 怀疑是被默认隐藏了 输出结果是如此 我不知道这是本来就这样还是我自己的问题 希望能有大佬可以答疑
  • 前台商品列表接口

    前台商品列表接口 搜索功能 1 入参判空 2 加 通配符 3 sql语句like关键字 平铺展示该商品类别及其子类别下的所有商品 排序功能 测试 查询 排序 按照类别展示该类别和他子类别下的所有商品 查询类别3和他所有子类别的商品 cont
  • 带你搞懂 Redis 中的两个策略

    面试的时候问到候选人 Redis 相关问题时 发现一个现象 一部分候选人分不清 Redis 的 键过期策略 和 内存淘汰策略 今天就来说一说这老哥俩 简单来说 过期策略就是当 key 到了指定的过期时间后 Redis 是用什么方式将其删除的
  • Python+Vue计算机毕业设计火灾与警情统计系统24b58(源码+程序+LW+部署)

    该项目含有源码 文档 程序 数据库 配套开发软件 软件安装教程 项目运行环境配置 Python3 7 7 Django Mysql5 7 pip list HBuilderX Vscode也行 Vue Pychram社区版 项目技术 Dja
  • 10分钟教你掌握BigQuery语法

    BigQuery 以下简称BQ 的CRUD操作都可以通过SQL指令來完成 Create SQL INSERT statement Read SQL SELETE statement Update SQL UPDATE MERGE 虽然Big
  • stm32驱动超声波模块

    define HCSR04 PORT GPIOB define HCSR04 CLK RCC APB2Periph GPIOB define HCSR04 TRIG GPIO Pin 8 define HCSR04 ECHO GPIO Pi
  • hadoop默认对3个副本的存储策略和执行策略:

    1 首先要先了解下什么是rack 机架 集群 一个集群有多个机架 一个机架有多个机器 一个机器一个datanode或namenode节点 通常一个机架内的机器之间的网络速度会高于跨机架机器之间的网络速度 2 但是要同时保持副本存储策略的容错
  • javascript 创建对象(object)

  • javascript 中键盘快捷键(键盘事件)

    如果想要在javascript中使用快捷键 可以利用 event ctrlKey event shiftKey event altKey 来进行判断 对应的是ctrl shift 与alt 按键 事件属性可返回一个布尔值 true fals
  • Flutter 判断网络可用性

    Flutter 判断网络可用性 依赖包 dependencies connectivity 0 4 2 代码 import package connectivity connectivity dart 2019 4 18 By GX 判断网
  • LeetCode 142.环形链表II

    给定一个链表的头节点 head 返回链表开始入环的第一个节点 如果链表无环 则返回 null 如果链表中有某个节点 可以通过连续跟踪 next 指针再次到达 则链表中存在环 为了表示给定链表中的环 评测系统内部使用整数 pos 来表示链表尾
  • Nodejs+Extjs+Mongodb开发第一天 Nodejs环境搭建

    一 装备 我个人PC环境是Ubuntu14 JDK7 所以下面的步骤及问题也是基于此进行及产生的 二 Nodejs及npm的安装 这个安装的过程在网上有很多教程 这里就不详细讲了 html view plain copy print sud