标签分类
当前位置:首页 > 程序设计电子书 > 电子书网盘下载
Node.js实战 Node.js实战
votal30

votal30 提供上传

资源
49
粉丝
37
喜欢
148
评论
1

    Node.js实战 PDF 超清扫描版

    电子书
    • 发布时间:

    给大家带来的一篇关于相关的电子书资源,介绍了关于Node.js、实战、Node方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小6.25 MB,吴中骅编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:9.6,更多相关的学习资源可以参阅 程序设计电子书Web前端视频、等栏目。

  • Node.js实战 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1RRv62s7tVM1XRnqbDlH2Dg
  • 分享码:vud4
  • Node.js实战

    内容介绍

    这书根据7个案例分別解读了Node.js在实战开发中的运用,这种章节目录既涉及到Docker、Koa 等****,也涉及到OAuth2、命令行专用工具、消息队列、单元测试、撰写C/C 控制模块等实战中常常会碰到的难题和应用领域。这书章节目录大致依照从简易到繁杂的难度系数编辑,每章节都根据1个案例引导小读者从头开始开发1个Node.js运用,让小读者由浅入深地学习培训Node.js,及其在实战开发中的程序编写方法。这书不仅主要解读了每一实战实例所涉及到的基本知识、构思和方式,也详尽表述了源代码的重要一部分,期待有益于小读者的学习培训和了解。

    这书合适有必须Node.js基本及服务端开发基本的小读者阅读文章,也合适想知道Node.js可

    以干什么、想快速入门实践活动的小读者阅读文章。

    目录

    • 第1章 通过Docker快速发布Node.js应用/ 1
    • 第2章 开发OAuth2认证服务器 /38
    • 第3章 基于RabbitMQ搭建消息队列/ 72
    • 第4章 编写命令行工具――打造一个静态博客系统/ 118
    • 第5章 基于Koa快速开发Web应用/ 157
    • 第6章 Node.js测试服务搭建 /235
    • 第7章 使用Node.js绑定C语言库――51Degrees.node /277

    读书笔记

    Node.js下向MySQL数据库插入批量数据的方法

    项目(nodejs)中需要一次性插入多笔数据到数据库,数据库是mysql的,由于循环插入的性能太差,就像使用批量插入的方法提高数据的插入性能。

    批量插入的数据库的表结构如下:

    Node.js下向MySQL数据库插入批量数据的方法

    1.数据库连接

    var mysql = require('mysql');
    // 数据库信息
    var connection = mysql.createConnection({
     host  : 'localhost',
     user  : '数据库用户名',
     password : '数据库登录密码',
     database : '操作数据库名'
    });

    将插入数据转换成嵌套数组

    例如要插入的两条数据:

    记录1:

    from:"index" 
    to:“www.alibaba.com”
    status:1
    is_new:0

    记录2:

    from:"index1"
    to:"www.google.com"
    status:1
    is_new:0

    转为一下格式:

    var values = [
     ["index","www.alibaba.com",1,0],
     ["index1","www.google.com",1,0]
    ];

    编写插入语句

    var sql = "INSERT INTO url(`from`,`to`,`status`, `is_new`) VALUES ?";

    调用query函数完成数据的插入

    connection.query(sql, [values], function (err, rows, fields) {
     if(err){
        console.log('INSERT ERROR - ', err.message);
        return;
       }
       console.log("INSERT SUCCESS");
    });

    完整代码:

    var mysql = require('mysql');
    // 数据库信息
    var connection = mysql.createConnection({
     host  : 'localhost',
     user  : '数据库用户名',
     password : '数据库登录密码',
     database : '操作数据库名'
    });
    var values = [
     ["index","www.alibaba.com",1,0],
     ["index1","www.google.com",1,0]
    ];
    var sql = "INSERT INTO url(`from`,`to`,`status`, `is_new`) VALUES ?";
    connection.query(sql, [values], function (err, rows, fields) {
     if(err){
        console.log('INSERT ERROR - ', err.message);
        return;
       }
       console.log("INSERT SUCCESS");
    });

    同时在这里记录一个基于事务的操作(还没有实践,具体效果不详)

    用事务循环插入、如果有一条插入失败进行回滚

    Node.js下向MySQL数据库插入批量数据的方法

    mysql模块、connection.beginTransaction是做事务

    然后我这里封装了一个函数、对传入的数组做循环插入或更新之类的操作、如果有一条失败了就回滚、全对了就commit

    总结

    以上所述是小编给大家介绍的Node.js下向MySQL数据库插入批量数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对码农之家网站的支持!

    上一篇:深度学习实践:计算机视觉  下一篇:MySQL 8 Cookbook

    展开 +

    收起 -

    相关电子书
    学习笔记
    网友NO.834710

    实例分析JS与Node.js中的事件循环

    这两天跟同事同事讨论遇到的一个问题,js中的 event loop ,引出了chrome与node中运行具有 setTimeout 和 Promise 的程序时候执行结果不一样的问题,从而引出了Nodejs的 event loop 机制,记录一下,感觉还是蛮有收获的 console.log(1)setTimeout(function() { new Promise(function(resolve, reject) { console.log(2) resolve() }) .then(() = { console.log(3) })}, 0)setTimeout(function() { console.log(4)}, 0)// chrome中运行:1 2 3 4// Node中运行: 1 2 4 3 chrome和Node执行的结果不一样,这就很有意思了。 1. JS 中的任务队列 JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊。 JavaScript的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准? 所以,为了避免复杂性,从一诞生,JavaScript就是单线程,这已经成了这门语言的核心特征,将来也不会改变。 为了利用多核CPU的计算能力,HTML5提出Web Worker标准,允许JavaScript脚本创建多个线程,但是子线程完全受主线程控制,且不得操……

    网友NO.350433

    webpack打包node.js后端项目的方法

    本文介绍了webpack打包node.js后端项目的方法,分享给大家,具体如下: 安装依赖 复制代码 代码如下: npm install --save-dev webpack babel-loader babel-preset-es2015 babel-preset-stage-0 webpack配置 webpack.config.js 'use strict';const webpack = require('webpack');let externals = _externals();module.exports = { entry: { app: './app.js', }, target: 'node', output: { path: './build', filename: '[name].js' }, resolve: { extensions: ['', '.js'] }, externals: externals, node: { console: true, global: true, process: true, Buffer: true, __filename: true, __dirname: true, setImmediate: true }, module: { loaders: [ { test: /\.js$/, loader: 'babel', query: { presets: ['es2015','stage-0'] }, exclude: /node_modules/ } ] }, plugins: [ new webpack.optimize.UglifyJsPlugin() ]};function _externals() { let manifest = require('./package.json'); let dependencies = manifest.dependencies; let externals = {}; for (let p in dependencies) { externals[p] = 'commonjs ' + p; } return externals;} 项目目录 +controller+models+routes+service+test+util-app.js-config.json-gulpfile.js-models.js-package.json-pm2.json-webpack.config.js github:https://github.com/ymyang/chain-tree 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。 ……

    网友NO.520693

    获取本机IP地址的实例(JavaScript / Node.js)

    --web 客户端 JavaScript !-- 调用方式 -- body onload="checkCookie()"/body function getYourIP(){const RTCPeerConnection = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection;if (RTCPeerConnection) (function(){const rtc = new RTCPeerConnection({iceServers: []});if (1 || window.mozRTCPeerConnection){rtc.createDataChannel('', {reliable: false});}rtc.onicecandidate = function(evt){if (evt.candidate) grepSDP(`a=${evt.candidate.candidate}`);};rtc.createOffer(function(offerDesc){grepSDP(offerDesc.sdp);rtc.setLocalDescription(offerDesc);}, function(e) {console.warn('offer failed', e);});const addrs = Object.create(null);addrs['0.0.0.0'] = false;function updateDisplay(newAddr){if (newAddr in addrs) return;addrs[newAddr] = true;const displayAddrs = Object.keys(addrs).filter(function(k) {return addrs[k];});for (let i = 0; i displayAddrs.length; i++){if (displayAddrs[i].length 16){displayAddrs.splice(i, 1);i--;}}console.info('您的IP: ', displayAddrs[0]);}function grepSDP(sdp){sdp.split('\r\n').forEach(function(line, index, arr){if (~line.indexOf('a=candidate')){const parts = line.split(' '),addr = parts[4],type = parts[7];if (type === 'host') updateDisplay(addr);}else if (~line.indexOf('c=')){const parts = line.split(' '),addr = parts[2];updateDisplay(addr);}});}})();else{console.warn('请使用主流浏览器:chrome,firefox,opera,safari');}} --web 服务端 Node.js const os = require('os'); module.exports ={getLocalIP : function(){const eth……

    网友NO.866406

    bootstrap treeview 扩展addNode方法动态添加子节点的方法

    bootstrap-treeview是一款效果非常酷的基于bootstrap的jQuery多级列表树插件。该jQuery插件基于Twitter Bootstrap,以简单和优雅的方式来显示一些继承树结构,如视图树、列表树等等。 本文只是详细说明对bootstrap-treeview添加子节点的扩展方法(addNode),如了解bootstrap-treeview所有用法请看官方API 官方api https://www.npmjs.com/package/bootstrap-treeview (点击新窗口打开) 使用过程中,需要动态添加子节点。发现api中没有此功能。找了很多资料也没有发现有相关的方法。 又不想放弃使用它,看来只能自己写的。先读他们的源代码,看他们的逻辑关系,然后就下手自己写一下。不多说,直接上代码 第一步:在Tree主函数return {/*在这里添加addNode的入口*……

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明