คำถามติดแท็ก node.js

Node.js เป็นรันไทม์ I / O อะซิงโครนัส I-O แบบอิงเหตุการณ์ซึ่งไม่ใช้การบล็อกซึ่งใช้เอ็นจิ้น V8 JavaScript ของ Google และไลบรารี libuv มันใช้สำหรับการพัฒนาแอพพลิเคชั่นที่ใช้ความสามารถในการรัน JavaScript ทั้งบนไคลเอนต์และฝั่งเซิร์ฟเวอร์ดังนั้นจึงได้รับประโยชน์จากการใช้งานโค้ดได้อีกครั้งและขาดการสลับบริบท

5
Express.js - app.listen vs server.listen
นี่อาจเป็นคำถามพื้นฐาน แต่ฉันก็ไม่เข้าใจ อะไรคือความแตกต่างระหว่างการสร้างแอปโดยใช้Express.jsและการเริ่มต้นฟังแอพที่พอร์ต 1234 ตัวอย่างเช่น: var express = require('express'); var app = express(); //app.configure, app.use etc app.listen(1234); และเพิ่มเซิร์ฟเวอร์ http: var express = require('express'); var http = require('http'); var app = express(); var server = http.createServer(app); //app.configure, app.use etc server.listen(1234); ความแตกต่างคืออะไร? ถ้าฉันไปที่http://localhost:1234ดังนั้นฉันได้รับผลลัพธ์เดียวกัน
439 node.js  express  server 

5
ฉันจะพิมพ์ JSON โดยใช้ node.js ได้อย่างไร?
ดูเหมือนว่าปัญหาจะได้รับการแก้ไข แต่ฉันไม่สามารถหาวิธีแก้ปัญหาได้ โดยพื้นฐานแล้วฉันอ่านไฟล์ JSON เปลี่ยนคีย์และเขียน JSON ใหม่เป็นไฟล์เดียวกัน ทั้งหมดทำงานได้ แต่ฉันจัดรูปแบบ JSON หลวมดังนั้นแทนที่จะเป็น: { name:'test', version:'1.0' } ฉันเข้าใจ {name:'test',version:'1.1'} มีวิธีใน Node.js ในการเขียน JSON ในรูปแบบที่ดีไปยังไฟล์หรือไม่?
436 json  node.js 

11
เรียก async / ฟังก์ชั่นที่รอคอยในแบบคู่ขนาน
เท่าที่ฉันเข้าใจใน ES7 / ES2016 การใส่รหัสหลายรายการawaitจะทำงานคล้ายกับการผูกมัด.then()กับสัญญาซึ่งหมายความว่าพวกเขาจะดำเนินการอย่างใดอย่างหนึ่งหลังจากที่อื่นมากกว่าใน Parallerl ตัวอย่างเช่นเรามีรหัสนี้: await someCall(); await anotherCall(); ฉันเข้าใจถูกต้องหรือไม่ว่าanotherCall()จะถูกเรียกเมื่อsomeCall()เสร็จสิ้นเท่านั้น อะไรคือวิธีที่สวยงามที่สุดในการโทรหาพวกเขาในแบบคู่ขนาน? ฉันต้องการใช้มันในโหนดดังนั้นอาจมีวิธีแก้ปัญหาด้วยไลบรารี async หรือไม่? แก้ไข: ฉันไม่พอใจกับวิธีแก้ปัญหาที่ให้ไว้ในคำถามนี้: การชะลอตัวเนื่องจากการรอคอยสัญญาแบบไม่ต่อเนื่องในเครื่องกำเนิดไฟฟ้า asyncเนื่องจากมันใช้เครื่องกำเนิดไฟฟ้าและฉันกำลังถามกรณีการใช้งานทั่วไปมากกว่า

3
ห้องสมุด websocket ใดที่จะใช้กับ Node.js [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน3 ปีที่ผ่านมา ขณะนี้มีห้องสมุด websocket มากมายสำหรับ node.js ซึ่งเป็นที่นิยมมากที่สุด: https://github.com/Worlize/WebSocket-Node https://github.com/einaros/ws https://github.com/LearnBoost/engine.io https://github.com/learnboost/socket.io https://github.com/sockjs อย่างไรก็ตามฉันไม่พบการเปรียบเทียบที่เป็นรูปธรรมใด ๆ ระหว่างพวกเขา ... เห็นได้ชัดว่า Socket.io ยอดเยี่ยมมาก แต่ก็ค่อนข้างล้าสมัยและไม่สามารถสร้างได้ ทั้ง ws และ websocket-node อ้างว่ามันเร็วที่สุด และ engine.io นั้นดูใหม่ แต่ก็หนักกว่าของ aletarntives ที่เบากว่ามาก มันจะน่าอัศจรรย์ถ้าเราหรือใครสักคนสามารถรวบรวมคำตอบที่ทำหน้าที่เป็นแนวทางในการใช้ซ็อกเก็ตไลบรารี่และเมื่อใดรวมถึงการเปรียบเทียบระหว่างพวกเขา


22
การทำให้โทเค็น JSON Web Tokens ไม่ถูกต้อง
สำหรับโครงการใหม่ node.js ที่ฉันกำลังทำงานฉันกำลังคิดที่จะเปลี่ยนจากวิธีเซสชันแบบใช้คุกกี้ (โดยสิ่งนี้ฉันหมายถึงการจัดเก็บรหัสไปยังที่เก็บคีย์ - ค่าที่มีเซสชันผู้ใช้ในเบราว์เซอร์ของผู้ใช้) สู่แนวทางเซสชันที่ใช้โทเค็น (ไม่มีที่เก็บคีย์ - ค่า) โดยใช้ JSON Web Tokens (jwt) โครงการนี้เป็นเกมที่ใช้ socket.io - การมีเซสชันที่ใช้โทเค็นจะเป็นประโยชน์ในสถานการณ์ดังกล่าวซึ่งจะมีช่องทางการสื่อสารหลายช่องในเซสชันเดียว (เว็บและ socket.io) หนึ่งจะให้โทเค็น / เซสชั่นไม่ถูกต้องจากเซิร์ฟเวอร์โดยใช้วิธีการ jwt? ฉันยังต้องการที่จะเข้าใจถึงข้อผิดพลาด / การโจมตีที่พบบ่อย (หรือผิดปกติ) ที่ฉันควรระวังด้วยกระบวนทัศน์ประเภทนี้ ตัวอย่างเช่นหากกระบวนทัศน์นี้มีความเสี่ยงต่อการโจมตีประเภทเดียวกัน / แตกต่างกันกับวิธีการจัดเก็บเซสชัน / คุกกี้ตามวิธี ดังนั้นบอกว่าฉันมีดังต่อไปนี้ (ดัดแปลงมาจากสิ่งนี้และสิ่งนี้ ): เข้าสู่ระบบร้านค้าเซสชัน: app.get('/login', function(request, response) { var user = {username: request.body.username, password: request.body.password …

6
การติดตั้งโมดูลโลคัลโดยใช้ npm หรือไม่?
ฉันมี repo โมดูลที่ดาวน์โหลดมาฉันต้องการติดตั้งในเครื่องไม่ใช่ในไดเร็กตอรี่อื่นหรือไม่? วิธีง่ายๆในการทำเช่นนี้คืออะไร?

16
การตั้งค่าตัวแปรสภาพแวดล้อมสำหรับโหนดเพื่อดึงข้อมูล
ฉันพยายามที่จะติดตามการกวดวิชาและมันบอกว่า: มีวิธีโหลดหนังสือรับรองอยู่สองสามวิธี โหลดจากตัวแปรสภาพแวดล้อม โหลดจากไฟล์ JSON บนดิสก์ กุญแจจะต้องมีดังนี้: USER_ID, USER_KEY ... ซึ่งหมายความว่าหากคุณตั้งค่าตัวแปรสภาพแวดล้อมอย่างเหมาะสมคุณไม่จำเป็นต้องจัดการข้อมูลประจำตัวในแอปพลิเคชันของคุณเลย จาก Googling บางตัวปรากฏว่าฉันจำเป็นต้องตั้งค่าตัวแปรเป็นprocess.env? ฉันจะตั้งค่าข้อมูลรับรองเหล่านี้ได้อย่างไรและที่ไหน ตัวอย่างได้โปรด

3
คำสั่ง npm เพื่อถอนการติดตั้งหรือตัดแพ็คเกจที่ไม่ได้ใช้ใน Node.js
มีวิธีการเพียงถอนการติดตั้งการอ้างอิงที่ไม่ได้ใช้ (ไม่ได้ประกาศ) ทั้งหมดจากโครงการ Node.js (รายการที่ไม่ได้กำหนดไว้ในของฉันอีกต่อไปpackage.json) เมื่อฉันอัปเดตแอปพลิเคชันของฉัน
414 node.js  npm  uninstall 

10
มีวิธีสร้างไฟล์ package.json โดยอัตโนมัติสำหรับโครงการ Node.js หรือไม่
package.json ควรแก้ไขด้วยตนเองหรือไม่ โปรแกรมอย่าง npm ไม่สามารถมองผ่านไฟล์ดูคำสั่ง "ต้องการ" แล้วใช้มันเพื่อใส่รายการที่จำเป็นในไฟล์ package.json มีโปรแกรมใด ๆ เช่นนั้นหรือไม่?
412 json  node.js  npm 

7
การเปิดใช้งาน HTTPS บน express.js
ฉันพยายามทำให้ HTTPS ทำงานบน express.js สำหรับโหนดและฉันไม่สามารถหามันได้ นี่คือapp.jsรหัสของฉัน var express = require('express'); var fs = require('fs'); var privateKey = fs.readFileSync('sslcert/server.key'); var certificate = fs.readFileSync('sslcert/server.crt'); var credentials = {key: privateKey, cert: certificate}; var app = express.createServer(credentials); app.get('/', function(req,res) { res.send('hello'); }); app.listen(8000); เมื่อฉันเรียกใช้ดูเหมือนว่าจะตอบกลับคำขอ HTTP เท่านั้น ฉันเขียนnode.jsแอพ HTTPS ที่ใช้วานิลลาอย่างง่าย: var fs = require("fs"), http …
408 node.js  https  express 

17
ทำไมการติดตั้ง npm บอกว่าฉันมีการพึ่งพาที่ไม่คาดคิด?
ฉันมีแพ็คเกจโหนด เมื่อฉันเรียกใช้npm installจากรากของแพคเกจจะติดตั้งสิ่งต่าง ๆ มากมาย แต่จากนั้นพิมพ์ข้อความแสดงข้อผิดพลาดต่าง ๆ ที่มีลักษณะดังนี้: npm WARN ไม่พึ่งพาการพึ่งพา / ผู้ใช้ / seanmackesey / google_drive / รหัส / สำรวจ / เครื่องกำเนิด / node_modules / findup-sync / node_modules / glob ต้องใช้ graceful-fs@'~1.2.0 'แต่จะโหลด ฉันต้องสับสนกับสิ่งที่npm installทำ หากตรวจพบการพึ่งพาไม่ควรติดตั้งหรือไม่ ภายใต้เงื่อนไขใดที่ทำให้ฉันมีข้อความแสดงข้อผิดพลาดเช่นนี้และฉันจะแก้ไขการอ้างอิงได้อย่างไร

13
วิธีการเรียกใช้งาน Gulp ตามลำดับหนึ่ง ๆ
ในตัวอย่างเช่นนี้: gulp.task "coffee", -> gulp.src("src/server/**/*.coffee") .pipe(coffee {bare: true}).on("error",gutil.log) .pipe(gulp.dest "bin") gulp.task "clean",-> gulp.src("bin", {read:false}) .pipe clean force:true gulp.task 'develop',['clean','coffee'], -> console.log "run something else" ในdevelopภารกิจที่ฉันต้องการเรียกใช้cleanและหลังจากเสร็จแล้วให้เรียกใช้coffeeและเมื่อเสร็จแล้วให้เรียกใช้อย่างอื่น แต่ฉันไม่สามารถเข้าใจได้ ชิ้นนี้ไม่ทำงาน กรุณาแนะนำ

8
bodyParser เลิกใช้งานแล้ว express 4
ฉันใช้ express 4.0 และฉันรู้ว่า body parser ถูกนำออกจาก express core ฉันกำลังใช้การแทนที่ที่แนะนำ แต่ฉันได้รับ body-parser deprecated bodyParser: use individual json/urlencoded middlewares server.js:15:12 body-parser deprecated urlencoded: explicitly specify "extended: true" for extended parsing node_modules/body-parser/index.js:74:29 ฉันจะหามิดเดิลแวร์ที่ควรจะอยู่ที่ไหน หรือฉันไม่ควรได้รับข้อผิดพลาดนี้? var express = require('express'); var server = express(); var bodyParser = require('body-parser'); var mongoose = require('mongoose'); var passport …

6
โดยทั่วไปแล้ว Node.js จัดการกับ 10,000 คำขอพร้อมกันอย่างไร
ฉันเข้าใจว่า Node.js ใช้เธรดเดี่ยวและวนรอบเหตุการณ์เพื่อประมวลผลคำขอเพียงครั้งละหนึ่งการประมวลผล (ซึ่งไม่ใช่การปิดกั้น) แต่ถึงกระนั้นการทำงานยังไงก็บอกว่า 10,000 คำร้องขอพร้อมกัน ห่วงเหตุการณ์จะดำเนินการตามคำขอทั้งหมดหรือไม่ จะไม่ใช้เวลานานเกินไป? ฉันไม่สามารถเข้าใจได้ (ยัง) ว่ามันจะเร็วกว่าเว็บเซิร์ฟเวอร์แบบมัลติเธรด ฉันเข้าใจว่าเว็บเซิร์ฟเวอร์แบบมัลติเธรดจะมีราคาแพงกว่าในทรัพยากร (หน่วยความจำ CPU) แต่จะไม่เร็วกว่านี้ไหม ฉันอาจผิด โปรดอธิบายว่าเธรดเดี่ยวนี้ทำงานเร็วกว่าในคำขอจำนวนมากได้อย่างไรและโดยทั่วไปแล้วจะทำอย่างไร (ในระดับสูง) เมื่อให้บริการคำขอจำนวนมากเช่น 10,000 และขนาดด้ายเดี่ยวจะดีหรือไม่กับจำนวนมาก? โปรดจำไว้ว่าฉันเพิ่งเริ่มเรียนรู้ Node.js
394 node.js 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.