文章目录

  • Nodejs创建一个Web服务器
    • Node.js创建第一个应用
    • Web服务器介绍
    • Nodejs创建一个Web服务器
  • 路由
  • EJS模块引擎
  • Get、Post
    • 获取GET传值
    • 获取POST传值

Nodejs创建一个Web服务器

在之前我们讲述了Node.js创建一个应用:

Node.js创建第一个应用

  1. 引入http模块。
var http = require('http');
  1. 创建服务器。

使用http.createServer()方法创建服务器,并使用listen()方法绑定端口。通过函数request,response参数来接收和响应数据。

const http = require('http');
http.createServer(function (request, response) {// 状态码是200, 文件类型是HTML,字符集是utf-8response.writeHead(200, { 'Content-Type': 'text/html;charset="utf-8"' });response.end('Hello World'); // 结束响应
}).listen(3000);console.log('Server running at http://127.0.0.1:3000/');

Web服务器介绍

Web服务器一般是指网站服务器。是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件让全世界浏览,还可以放置数据文件,让全世界下载。目前最主流的Web服务器有Apache、Nginx、IIS等。

Nodejs创建一个Web服务器

  1. 可以让我们访问web服务器上面的网站。
  2. 可以让我们下载web服务器上面的文件。
  • 文件目录

  • app.js:
const http = require('http');
const routes = require('./module/routes');http.createServer(function(request, response) {routes.static(request, response, 'ctrip');
}).listen(3000);console.log('Server running at http://127.0.0.1:3000/');
  • routes.js:
const fs = require('fs');
const path = require('path');
const url = require('url');// 私有方法
let getFileMime = function(extname) {var data = fs.readFileSync('./data/mime.json'); // 同步方法let mimeObj = JSON.parse(data.toString());return mimeObj[extname];}exports.static = function(request, response, staticPath) {// 1.获取地址let pathName = url.parse(request.url).pathname;pathName = pathName == '/' ? '/index.html' : pathName;let extname = path.extname(pathName); // 可以获取后缀名// 2.通过fs模块读取文件if (pathName != '/favicon.ico') {fs.readFile('./' + staticPath + pathName, (err, data) => {if (err) {response.writeHead(404, { 'Content-Type': 'text/html;charset="utf-8"' });response.end('404这个页面不存在');}let mime = getFileMime(extname);response.writeHead(200, { 'Content-Type': '' + mime + ';charset="utf-8"' });response.end(data);});}
}
  • mime.json(所有相关的响应类型):
{".323": "text/h323",".3gp": "video/3gpp",".aab": "application/x-authoware-bin",".aam": "application/x-authoware-map",".aas": "application/x-authoware-seg",".acx": "application/internet-property-stream",".ai": "application/postscript",".aif": "audio/x-aiff",".aifc": "audio/x-aiff",".aiff": "audio/x-aiff",".als": "audio/X-Alpha5",".amc": "application/x-mpeg",".ani": "application/octet-stream",".apk": "application/vnd.android.package-archive",".asc": "text/plain",".asd": "application/astound",".asf": "video/x-ms-asf",".asn": "application/astound",".asp": "application/x-asap",".asr": "video/x-ms-asf",".asx": "video/x-ms-asf",".au": "audio/basic",".avb": "application/octet-stream",".avi": "video/x-msvideo",".awb": "audio/amr-wb",".axs": "application/olescript",".bas": "text/plain",".bcpio": "application/x-bcpio",".bin ": "application/octet-stream",".bld": "application/bld",".bld2": "application/bld2",".bmp": "image/bmp",".bpk": "application/octet-stream",".bz2": "application/x-bzip2",".c": "text/plain",".cal": "image/x-cals",".cat": "application/vnd.ms-pkiseccat",".ccn": "application/x-cnc",".cco": "application/x-cocoa",".cdf": "application/x-cdf",".cer": "application/x-x509-ca-cert",".cgi": "magnus-internal/cgi",".chat": "application/x-chat",".class": "application/octet-stream",".clp": "application/x-msclip",".cmx": "image/x-cmx",".co": "application/x-cult3d-object",".cod": "image/cis-cod",".conf": "text/plain",".cpio": "application/x-cpio",".cpp": "text/plain",".cpt": "application/mac-compactpro",".crd": "application/x-mscardfile",".crl": "application/pkix-crl",".crt": "application/x-x509-ca-cert",".csh": "application/x-csh",".csm": "chemical/x-csml",".csml": "chemical/x-csml",".css": "text/css",".cur": "application/octet-stream",".dcm": "x-lml/x-evm",".dcr": "application/x-director",".dcx": "image/x-dcx",".der": "application/x-x509-ca-cert",".dhtml": "text/html",".dir": "application/x-director",".dll": "application/x-msdownload",".dmg": "application/octet-stream",".dms": "application/octet-stream",".doc": "application/msword",".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",".dot": "application/msword",".dvi": "application/x-dvi",".dwf": "drawing/x-dwf",".dwg": "application/x-autocad",".dxf": "application/x-autocad",".dxr": "application/x-director",".ebk": "application/x-expandedbook",".emb": "chemical/x-embl-dl-nucleotide",".embl": "chemical/x-embl-dl-nucleotide",".eps": "application/postscript",".epub": "application/epub+zip",".eri": "image/x-eri",".es": "audio/echospeech",".esl": "audio/echospeech",".etc": "application/x-earthtime",".etx": "text/x-setext",".evm": "x-lml/x-evm",".evy": "application/envoy",".exe": "application/octet-stream",".fh4": "image/x-freehand",".fh5": "image/x-freehand",".fhc": "image/x-freehand",".fif": "application/fractals",".flr": "x-world/x-vrml",".flv": "flv-application/octet-stream",".fm": "application/x-maker",".fpx": "image/x-fpx",".fvi": "video/isivideo",".gau": "chemical/x-gaussian-input",".gca": "application/x-gca-compressed",".gdb": "x-lml/x-gdb",".gif": "image/gif",".gps": "application/x-gps",".gtar": "application/x-gtar",".gz": "application/x-gzip",".h": "text/plain",".hdf": "application/x-hdf",".hdm": "text/x-hdml",".hdml": "text/x-hdml",".hlp": "application/winhlp",".hqx": "application/mac-binhex40",".hta": "application/hta",".htc": "text/x-component",".htm": "text/html",".html": "text/html",".hts": "text/html",".htt": "text/webviewhtml",".ice": "x-conference/x-cooltalk",".ico": "image/x-icon",".ief": "image/ief",".ifm": "image/gif",".ifs": "image/ifs",".iii": "application/x-iphone",".imy": "audio/melody",".ins": "application/x-internet-signup",".ips": "application/x-ipscript",".ipx": "application/x-ipix",".isp": "application/x-internet-signup",".it": "audio/x-mod",".itz": "audio/x-mod",".ivr": "i-world/i-vrml",".j2k": "image/j2k",".jad": "text/vnd.sun.j2me.app-descriptor",".jam": "application/x-jam",".jar": "application/java-archive",".java": "text/plain",".jfif": "image/pipeg",".jnlp": "application/x-java-jnlp-file",".jpe": "image/jpeg",".jpeg": "image/jpeg",".jpg": "image/jpeg",".jpz": "image/jpeg",".js": "application/x-javascript",".jwc": "application/jwc",".kjx": "application/x-kjx",".lak": "x-lml/x-lak",".latex": "application/x-latex",".lcc": "application/fastman",".lcl": "application/x-digitalloca",".lcr": "application/x-digitalloca",".lgh": "application/lgh",".lha": "application/octet-stream",".lml": "x-lml/x-lml",".lmlpack": "x-lml/x-lmlpack",".log": "text/plain",".lsf": "video/x-la-asf",".lsx": "video/x-la-asf",".lzh": "application/octet-stream",".m13": "application/x-msmediaview",".m14": "application/x-msmediaview",".m15": "audio/x-mod",".m3u": "audio/x-mpegurl",".m3url": "audio/x-mpegurl",".m4a": "audio/mp4a-latm",".m4b": "audio/mp4a-latm",".m4p": "audio/mp4a-latm",".m4u": "video/vnd.mpegurl",".m4v": "video/x-m4v",".ma1": "audio/ma1",".ma2": "audio/ma2",".ma3": "audio/ma3",".ma5": "audio/ma5",".man": "application/x-troff-man",".map": "magnus-internal/imagemap",".mbd": "application/mbedlet",".mct": "application/x-mascot",".mdb": "application/x-msaccess",".mdz": "audio/x-mod",".me": "application/x-troff-me",".mel": "text/x-vmel",".mht": "message/rfc822",".mhtml": "message/rfc822",".mi": "application/x-mif",".mid": "audio/mid",".midi": "audio/midi",".mif": "application/x-mif",".mil": "image/x-cals",".mio": "audio/x-mio",".mmf": "application/x-skt-lbs",".mng": "video/x-mng",".mny": "application/x-msmoney",".moc": "application/x-mocha",".mocha": "application/x-mocha",".mod": "audio/x-mod",".mof": "application/x-yumekara",".mol": "chemical/x-mdl-molfile",".mop": "chemical/x-mopac-input",".mov": "video/quicktime",".movie": "video/x-sgi-movie",".mp2": "video/mpeg",".mp3": "audio/mpeg",".mp4": "video/mp4",".mpa": "video/mpeg",".mpc": "application/vnd.mpohun.certificate",".mpe": "video/mpeg",".mpeg": "video/mpeg",".mpg": "video/mpeg",".mpg4": "video/mp4",".mpga": "audio/mpeg",".mpn": "application/vnd.mophun.application",".mpp": "application/vnd.ms-project",".mps": "application/x-mapserver",".mpv2": "video/mpeg",".mrl": "text/x-mrml",".mrm": "application/x-mrm",".ms": "application/x-troff-ms",".msg": "application/vnd.ms-outlook",".mts": "application/metastream",".mtx": "application/metastream",".mtz": "application/metastream",".mvb": "application/x-msmediaview",".mzv": "application/metastream",".nar": "application/zip",".nbmp": "image/nbmp",".nc": "application/x-netcdf",".ndb": "x-lml/x-ndb",".ndwn": "application/ndwn",".nif": "application/x-nif",".nmz": "application/x-scream",".nokia-op-logo": "image/vnd.nok-oplogo-color",".npx": "application/x-netfpx",".nsnd": "audio/nsnd",".nva": "application/x-neva1",".nws": "message/rfc822",".oda": "application/oda",".ogg": "audio/ogg",".oom": "application/x-AtlasMate-Plugin",".p10": "application/pkcs10",".p12": "application/x-pkcs12",".p7b": "application/x-pkcs7-certificates",".p7c": "application/x-pkcs7-mime",".p7m": "application/x-pkcs7-mime",".p7r": "application/x-pkcs7-certreqresp",".p7s": "application/x-pkcs7-signature",".pac": "audio/x-pac",".pae": "audio/x-epac",".pan": "application/x-pan",".pbm": "image/x-portable-bitmap",".pcx": "image/x-pcx",".pda": "image/x-pda",".pdb": "chemical/x-pdb",".pdf": "application/pdf",".pfr": "application/font-tdpfr",".pfx": "application/x-pkcs12",".pgm": "image/x-portable-graymap",".pict": "image/x-pict",".pko": "application/ynd.ms-pkipko",".pm": "application/x-perl",".pma": "application/x-perfmon",".pmc": "application/x-perfmon",".pmd": "application/x-pmd",".pml": "application/x-perfmon",".pmr": "application/x-perfmon",".pmw": "application/x-perfmon",".png": "image/png",".pnm": "image/x-portable-anymap",".pnz": "image/png",".pot,": "application/vnd.ms-powerpoint",".ppm": "image/x-portable-pixmap",".pps": "application/vnd.ms-powerpoint",".ppt": "application/vnd.ms-powerpoint",".pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation",".pqf": "application/x-cprplayer",".pqi": "application/cprplayer",".prc": "application/x-prc",".prf": "application/pics-rules",".prop": "text/plain",".proxy": "application/x-ns-proxy-autoconfig",".ps": "application/postscript",".ptlk": "application/listenup",".pub": "application/x-mspublisher",".pvx": "video/x-pv-pvx",".qcp": "audio/vnd.qcelp",".qt": "video/quicktime",".qti": "image/x-quicktime",".qtif": "image/x-quicktime",".r3t": "text/vnd.rn-realtext3d",".ra": "audio/x-pn-realaudio",".ram": "audio/x-pn-realaudio",".rar": "application/octet-stream",".ras": "image/x-cmu-raster",".rc": "text/plain",".rdf": "application/rdf+xml",".rf": "image/vnd.rn-realflash",".rgb": "image/x-rgb",".rlf": "application/x-richlink",".rm": "audio/x-pn-realaudio",".rmf": "audio/x-rmf",".rmi": "audio/mid",".rmm": "audio/x-pn-realaudio",".rmvb": "audio/x-pn-realaudio",".rnx": "application/vnd.rn-realplayer",".roff": "application/x-troff",".rp": "image/vnd.rn-realpix",".rpm": "audio/x-pn-realaudio-plugin",".rt": "text/vnd.rn-realtext",".rte": "x-lml/x-gps",".rtf": "application/rtf",".rtg": "application/metastream",".rtx": "text/richtext",".rv": "video/vnd.rn-realvideo",".rwc": "application/x-rogerwilco",".s3m": "audio/x-mod",".s3z": "audio/x-mod",".sca": "application/x-supercard",".scd": "application/x-msschedule",".sct": "text/scriptlet",".sdf": "application/e-score",".sea": "application/x-stuffit",".setpay": "application/set-payment-initiation",".setreg": "application/set-registration-initiation",".sgm": "text/x-sgml",".sgml": "text/x-sgml",".sh": "application/x-sh",".shar": "application/x-shar",".shtml": "magnus-internal/parsed-html",".shw": "application/presentations",".si6": "image/si6",".si7": "image/vnd.stiwap.sis",".si9": "image/vnd.lgtwap.sis",".sis": "application/vnd.symbian.install",".sit": "application/x-stuffit",".skd": "application/x-Koan",".skm": "application/x-Koan",".skp": "application/x-Koan",".skt": "application/x-Koan",".slc": "application/x-salsa",".smd": "audio/x-smd",".smi": "application/smil",".smil": "application/smil",".smp": "application/studiom",".smz": "audio/x-smd",".snd": "audio/basic",".spc": "application/x-pkcs7-certificates",".spl": "application/futuresplash",".spr": "application/x-sprite",".sprite": "application/x-sprite",".sdp": "application/sdp",".spt": "application/x-spt",".src": "application/x-wais-source",".sst": "application/vnd.ms-pkicertstore",".stk": "application/hyperstudio",".stl": "application/vnd.ms-pkistl",".stm": "text/html",".sv4cpio": "application/x-sv4cpio",".sv4crc": "application/x-sv4crc",".svf": "image/vnd",".svg": "image/svg+xml",".svh": "image/svh",".svr": "x-world/x-svr",".swf": "application/x-shockwave-flash",".swfl": "application/x-shockwave-flash",".t": "application/x-troff",".tad": "application/octet-stream",".talk": "text/x-speech",".tar": "application/x-tar",".taz": "application/x-tar",".tbp": "application/x-timbuktu",".tbt": "application/x-timbuktu",".tcl": "application/x-tcl",".tex": "application/x-tex",".texi": "application/x-texinfo",".texinfo": "application/x-texinfo",".tgz": "application/x-compressed",".thm": "application/vnd.eri.thm",".tif": "image/tiff",".tiff": "image/tiff",".tki": "application/x-tkined",".tkined": "application/x-tkined",".toc": "application/toc",".toy": "image/toy",".tr": "application/x-troff",".trk": "x-lml/x-gps",".trm": "application/x-msterminal",".tsi": "audio/tsplayer",".tsp": "application/dsptype",".tsv": "text/tab-separated-values",".ttf": "application/octet-stream",".ttz": "application/t-time",".txt": "text/plain",".uls": "text/iuls",".ult": "audio/x-mod",".ustar": "application/x-ustar",".uu": "application/x-uuencode",".uue": "application/x-uuencode",".vcd": "application/x-cdlink",".vcf": "text/x-vcard",".vdo": "video/vdo",".vib": "audio/vib",".viv": "video/vivo",".vivo": "video/vivo",".vmd": "application/vocaltec-media-desc",".vmf": "application/vocaltec-media-file",".vmi": "application/x-dreamcast-vms-info",".vms": "application/x-dreamcast-vms",".vox": "audio/voxware",".vqe": "audio/x-twinvq-plugin",".vqf": "audio/x-twinvq",".vql": "audio/x-twinvq",".vre": "x-world/x-vream",".vrml": "x-world/x-vrml",".vrt": "x-world/x-vrt",".vrw": "x-world/x-vream",".vts": "workbook/formulaone",".wav": "audio/x-wav",".wax": "audio/x-ms-wax",".wbmp": "image/vnd.wap.wbmp",".wcm": "application/vnd.ms-works",".wdb": "application/vnd.ms-works",".web": "application/vnd.xara",".wi": "image/wavelet",".wis": "application/x-InstallShield",".wks": "application/vnd.ms-works",".wm": "video/x-ms-wm",".wma": "audio/x-ms-wma",".wmd": "application/x-ms-wmd",".wmf": "application/x-msmetafile",".wml": "text/vnd.wap.wml",".wmlc": "application/vnd.wap.wmlc",".wmls": "text/vnd.wap.wmlscript",".wmlsc": "application/vnd.wap.wmlscriptc",".wmlscript": "text/vnd.wap.wmlscript",".wmv": "audio/x-ms-wmv",".wmx": "video/x-ms-wmx",".wmz": "application/x-ms-wmz",".wpng": "image/x-up-wpng",".wps": "application/vnd.ms-works",".wpt": "x-lml/x-gps",".wri": "application/x-mswrite",".wrl": "x-world/x-vrml",".wrz": "x-world/x-vrml",".ws": "text/vnd.wap.wmlscript",".wsc": "application/vnd.wap.wmlscriptc",".wv": "video/wavelet",".wvx": "video/x-ms-wvx",".wxl": "application/x-wxl",".x-gzip": "application/x-gzip",".xaf": "x-world/x-vrml",".xar": "application/vnd.xara",".xbm": "image/x-xbitmap",".xdm": "application/x-xdma",".xdma": "application/x-xdma",".xdw": "application/vnd.fujixerox.docuworks",".xht": "application/xhtml+xml",".xhtm": "application/xhtml+xml",".xhtml": "application/xhtml+xml",".xla": "application/vnd.ms-excel",".xlc": "application/vnd.ms-excel",".xll": "application/x-excel",".xlm": "application/vnd.ms-excel",".xls": "application/vnd.ms-excel",".xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",".xlt": "application/vnd.ms-excel",".xlw": "application/vnd.ms-excel",".xm": "audio/x-mod",".xml": "application/xml",".xmz": "audio/x-mod",".xof": "x-world/x-vrml",".xpi": "application/x-xpinstall",".xpm": "image/x-xpixmap",".xsit": "text/xml",".xsl": "text/xml",".xul": "text/xul",".xwd": "image/x-xwindowdump",".xyz": "chemical/x-pdb",".yz1": "application/x-yz1",".z": "application/x-compress",".zac": "application/x-zaurus-zac",".zip": "application/zip",".json": "application/json"
}

路由

  • 官方解释

    • 路由(Routing)是由一个URL(或者叫路径)和一个特定的HTTP方法(GET、POST等)组成的,涉及到应用如何响应客户端对某个网站节点的访问。
  • 通俗的说:
    • 路由指的就是不同请求的URL,处理不同的业务逻辑。
let pathname = url.parse(request.url).pathname;
if (pathname == '/login') {response.writeHead(200, { 'Content-Type': 'test/html;charset="utf-8"' });response.end('login');
} else if (pathname == '/register') {response.writeHead(200, { 'Content-Type': 'test/html;charset="utf-8"' });response.end("执行登录");
} else if (pathname == '/admin') {response.writeHead(200, { 'Content-Type': 'test/html;charset="utf-8"' });response.end('处理后端业务逻辑');
} else {response.writeHead(404, { 'Content-Type': 'test/html;charset="utf-8"' });response.end('404页面不存在');
}

EJS模块引擎

我们学的EJS是后台模板,可以把我们数据库和文件读取的数据显示到HTML页面上。它是一个第三方模块,需要通过npm安装。

  • 安装:

    npm install ejs --save  /  cnpm install ejs --save
    
  • Nodejs中使用:

    ejs.renderFile(filename, data, options, function(err, str) {// str => Rendered HTML String
    });
    
if (pathname == '/login') {let msg = '数据库里面获取的数据';let list = [{title: '新闻111'},{title: '新闻222'},{title: '新闻333'},{title: '新闻444'},{title: '新闻555'}]ejs.renderFile('./views/login.ejs', {msg: msg,list: list}, (err, data) => {response.writeHead(200, { 'Content-Type': 'text/html;charset="utf-8"' });response.end(data);});}

login.ejs:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><h2>这是一个登录页面</h2><h3><%=msg%></h3><br><ul><%for(var i = 0; i < list.length; i++) {%><li><%=list[i].title%></li><%}%></ul>
</body></html>

Get、Post

  • 超文本传输协议(HTTP)的设计目的是保证客户端机器与服务器之间的通信。在客户端的服务器之间进行请求响应时,两种最长被用到的方法是:GET和POST。
  • GET-从指定的资源请求数据。(一般用于数据的获取)
  • POST-从指定的资源提交要被处理的数据。(一般用户数据的提交)

获取GET传值

var urlinfo = url.parse(request.url, true);
urlinfo.query;

获取POST传值

var postData = '';
// 数据块接收中
request.on('data', function(postDataChunk) {postData += PostDataChunk;
});
// 数据接收完毕,执行回调函数
request.on('end', function() {try {postData = JSON.parse(postData);}catch(e) {}request.query = postData;
});

使用Nodejs创建一个Web服务器应如何操作?以及路由相关知识了解相关推荐

  1. 十七、创建一个 WEB 服务器(一)

    1.Node.js 创建的第一个应用 var http=require("http") http.createServer(function (req,res) {res.writ ...

  2. nodejs 创建一个静态资源服务器 +路由

    0.补充 1.Node.js 创建的第一个应用 1.引入 http 模块 var http = require("http"); 2.创建服务器 接下来我们使用 http.crea ...

  3. nodejs项目实战教程08——创建静态Web服务器

    nodejs项目实战教程08--创建静态Web服务器 什么是Web服务器 目标 1. 访问web服务器上面的网站 1.1 创建服务器 1.2 读取服务器上的资源文件 2. 下载web服务器上的文件 方 ...

  4. Servlet学习DAY_01:服务器概念/Web服务器的作用/ Servlet概念/ 如何关联和解除Tomcat/ 创建一个Web工程 /Servlet响应流程/ Get-Post /常见异常

    Servlet 什么是服务器 服务器就是一台高性能电脑 电脑上安装了提供服务的软件就称为 xxx服务器 举例: 邮件服务器: 就是在电脑上安装了提供邮件收发服务的软件 ftp服务器: 就是在电脑上安装 ...

  5. 投票系统web服务器,创建一个Web投票系统

    您的位置:首页 → 精文荟萃 → 软件资讯 → 创建一个Web投票系统创建一个Web投票系统 时间:2004/10/7 19:09:00作者:蓝点 下面zip文件:http://www.content ...

  6. Node.js「三」—— 创建静态 WEB 服务器

    本文为 Node.js 系列笔记第三篇.文章参考:nodejs 教程:<深入浅出 Node.js>:阮一峰 nodejs 博客: Node.js v16.13.0 文档 文章目录 前言 一 ...

  7. 服务器关闭重启后客户端socket能自动连接吗_用Python 撸一个 Web 服务器

    从一个 Hello World 程序说起 要编写 Web 服务器,需要用到一个 Python 内置库 socket.Socket 是一个比较抽象的概念,中文叫套接字,它代表一个网络连接.两台计算机之间 ...

  8. Jmeter 创建一个web测试计划

    Jmeter 创建一个web测试计划 by:授客 QQ:1033553122 1.   下载Jmeter 下载地址:http://jmeter.apache.org/download_jmeter.c ...

  9. api怎么写_使用Node.js原生API写一个web服务器

    Node.js是JavaScript基础上发展起来的语言,所以前端开发者应该天生就会一点.一般我们会用它来做CLI工具或者Web服务器,做Web服务器也有很多成熟的框架,比如Express和Koa.但 ...

最新文章

  1. do还是doing imagine加to_中学必背英语短语集合:54个doing动名词的固定搭配
  2. oracle加并行好不好,请教--对INSERT语句加并行度是否会提高速度
  3. 【软件工程】CMMI 能力成熟度模型集成 ( CMMI 工程过程域 | CMMI 支持过程域 ) ★
  4. tensorflow2.X安装及使用
  5. kaggle房价预测问题
  6. LeetCode 523. 连续的子数组和(求余 哈希)
  7. vue项目打包部署linux_Vue项目打包部署到Nginx服务器
  8. android ichartjs 曲线图,C#中利用LightningChart绘制曲线图表
  9. Scanner--控制台输入
  10. 操作数据库为什么需要进行事务控制
  11. 3万字“十看支付”:开启支付之门
  12. M2Det: A Single-Shot Object Detector based on Multi-Level Feature Pyramid
  13. Tilera吴晓东:2013年要做成三百多个核
  14. 【论文翻译】PLOP: Learning without Forgetting for Continual Semantic Segmentation
  15. UE-c++规范命名
  16. 通过股票代码识别所属板块(20190730)
  17. Qualcomm msm8974 编译
  18. LaTeX 写作的两个辅助工具:统计中文字数和关闭Acrobat中的PDF文档
  19. 可穿戴设备:越来越清晰的苹果iWatch
  20. 跨平台应用开发进阶(五十八):短链基本工作原理与实现方案

热门文章

  1. 啥是数据处理能力?(二)数据处理工具
  2. 【UE4】【笔记】7、照明阴影和后期处理
  3. 滴水内核中级班阶段测试题
  4. Android开发必备(干货源码放送大)
  5. OC 07 设计模式
  6. 在linux4.15 移植设备树到JZ2440
  7. matlab 龙贝格法,matlab龙贝格法
  8. 机器人扔瓶子大赛 由瓶子引发的科技狂欢
  9. 单片机c语言波特率检测,基于MSP430系列微控制器串口通信时的波特率自动检测的实现...
  10. 《羊年展望》中国改革蹄疾经济求稳 新思维应对新常态