คำถามติดแท็ก express

Express เป็นเฟรมเวิร์กเว็บแอ็พพลิเคชัน Node.js ที่ยืดหยุ่นซึ่งจัดเตรียมชุดคุณลักษณะที่มีประสิทธิภาพสำหรับการสร้างเว็บแอ็พพลิเคชัน

3
การส่งผ่านอาร์กิวเมนต์ที่ต้องการ (เมื่อโหลดโมดูล)
เป็นไปได้ไหมที่จะส่งผ่านอาร์กิวเมนต์เมื่อโหลดโมดูลโดยใช้ require ฉันมีโมดูล login.js ซึ่งมีฟังก์ชันการเข้าสู่ระบบ ต้องมีการเชื่อมต่อฐานข้อมูลและฉันต้องการให้ใช้การเชื่อมต่อฐานข้อมูลเดียวกันในโมดูลทั้งหมดของฉัน ตอนนี้ฉันส่งออกฟังก์ชัน login.setDatabase (... ) ซึ่งให้ฉันระบุการเชื่อมต่อฐานข้อมูลและใช้งานได้ดี แต่ฉันอยากจะส่งผ่านฐานข้อมูลและข้อกำหนดอื่น ๆ เมื่อฉันโหลดโมดูล var db = ... var login = require("./login.js")(db); ฉันค่อนข้างใหม่กับ NodeJS และมักจะพัฒนาโดยใช้ Java และ Spring Framework ใช่ ... นี่คือการฉีดตัวสร้าง :) เป็นไปได้ไหมที่จะทำบางอย่างเช่นรหัสที่ฉันให้ไว้ด้านบน?
114 node.js  express 

28
ไม่สามารถเขียนทับโมเดลเมื่อรวบรวมพังพอนแล้ว
ไม่แน่ใจว่าฉันทำอะไรผิดนี่คือ check.js ของฉัน var db = mongoose.createConnection('localhost', 'event-db'); db.on('error', console.error.bind(console, 'connection error:')); var a1= db.once('open',function(){ var user = mongoose.model('users',{ name:String, email:String, password:String, phone:Number, _enabled:Boolean }); user.find({},{},function (err, users) { mongoose.connection.close(); console.log("Username supplied"+username); //doSomethingHere }) }); และนี่คือ insert.js ของฉัน var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/event-db') var user = mongoose.model('users',{ name:String, email:String, password: …

1
วิธีอัปโหลดแสดงและบันทึกภาพโดยใช้ node.js และ express [ปิด]
มันยากที่จะบอกว่ากำลังถามอะไรที่นี่ คำถามนี้คลุมเครือคลุมเครือไม่สมบูรณ์กว้างเกินไปหรือมีวาทศิลป์และไม่สามารถตอบได้อย่างสมเหตุสมผลในรูปแบบปัจจุบัน สำหรับความช่วยเหลือในการทำความเข้าใจคำถามนี้เพื่อที่จะสามารถเปิด, ไปที่ศูนย์ช่วยเหลือ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันต้องการอัปโหลดภาพและแสดงรวมทั้งบันทึกเพื่อไม่ให้สูญหายเมื่อฉันรีเฟรช localhost ต้องทำโดยใช้ปุ่ม "อัปโหลด" ซึ่งจะแจ้งให้เลือกไฟล์ ฉันใช้ node.js และ Express สำหรับโค้ดฝั่งเซิร์ฟเวอร์
112 image  node.js  upload  express 


9
การพิสูจน์ตัวตน HTTP พื้นฐานด้วย Node และ Express 4
ดูเหมือนว่าการใช้การตรวจสอบสิทธิ์ HTTP พื้นฐานกับ Express v3 นั้นไม่สำคัญ: app.use(express.basicAuth('username', 'password')); เวอร์ชัน 4 (ฉันใช้ 4.2) ได้ลบbasicAuthมิดเดิลแวร์ออกไปแล้วดังนั้นฉันจึงติดขัดเล็กน้อย ฉันมีรหัสต่อไปนี้ แต่ไม่ได้ทำให้เบราว์เซอร์แจ้งให้ผู้ใช้ป้อนข้อมูลรับรองซึ่งเป็นสิ่งที่ฉันต้องการ (และฉันคิดว่าวิธีการเดิมทำ): app.use(function(req, res, next) { var user = auth(req); if (user === undefined || user['name'] !== 'username' || user['pass'] !== 'password') { res.writeHead(401, 'Access invalid for user', {'Content-Type' : 'text/plain'}); res.end('Invalid credentials'); } else { …

6
express.js - ตัวจัดการเส้นทางเดียวสำหรับหลายเส้นทางในบรรทัดเดียว
มีวิธีทำสิ่งนี้ในการเรียกใช้ฟังก์ชันเดียวหรือไม่? var todo = function (req, res){}; app.get("/", todo); app.get("/blabla", todo); app.get("/blablablabla", todo); สิ่งที่ต้องการ: app.get("/", "/blabla", "/blablablabla", todo ); ฉันรู้ว่านี่เป็นความยุ่งเหยิงทางไวยากรณ์ แต่เพียงเพื่อให้ความคิดว่าฉันต้องการจะบรรลุอะไรอาร์เรย์ของเส้นทางก็น่าจะยอดเยี่ยม! ใครทราบวิธีการทำเช่นนี้

5
การสร้างมิดเดิลแวร์ Expressjs ที่ยอมรับพารามิเตอร์
ฉันกำลังพยายามสร้างมิดเดิลแวร์ที่สามารถรับพารามิเตอร์ได้ จะทำได้อย่างไร? ตัวอย่าง app.get('/hasToBeAdmin', HasRole('Admin'), function(req,res){ }) HasRole = function(role, req, res, next){ if(role != user.role){ res.redirect('/NotInRole); } next(); }
110 node.js  express 

9
วิธีใช้ Morgan Logger?
ฉันไม่สามารถเข้าสู่ระบบกับมอร์แกนได้ ไม่บันทึกข้อมูลลงในคอนโซล เอกสารไม่ได้บอกวิธีการใช้งาน ฉันต้องการดูว่าตัวแปรคืออะไร นี่คือรหัสจากresponse.jsไฟล์ของเฟรมเวิร์ก expressjs: var logger = require("morgan"); res.render = function(view, options, fn){ options = options || {}; var self = this; var req = this.req; var app = req.app; // support callback function as second arg if ('function' == typeof options) { fn = options, options = …
109 node.js  logging  express 

5
ฉันจะปิดอินสแตนซ์ของ ExpressJS โดยทางโปรแกรมเพื่อทดสอบได้อย่างไร
ฉันกำลังพยายามหาวิธีปิดอินสแตนซ์ของ Express โดยพื้นฐานแล้วฉันต้องการการผกผันของการ.listen(port)โทร - ฉันจะทำให้เซิร์ฟเวอร์ Express หยุดฟังปล่อยพอร์ตและปิดอย่างหมดจดได้อย่างไร ฉันรู้ว่านี่อาจเป็นคำถามแปลก ๆ ดังนั้นนี่คือบริบท อาจมีวิธีอื่นในการเข้าถึงสิ่งนี้และฉันคิดผิด ฉันกำลังพยายามตั้งค่ากรอบการทดสอบสำหรับแอพ socket.io/nodejs ของฉัน มันเป็นแอพหน้าเดียวดังนั้นในสคริปต์การทดสอบของฉัน (ฉันใช้Mochaแต่นั่นไม่สำคัญจริงๆ) ฉันต้องการที่จะสามารถเริ่มต้นเซิร์ฟเวอร์เรียกใช้การทดสอบกับเซิร์ฟเวอร์จากนั้นปิดเซิร์ฟเวอร์ ฉันสามารถหลีกเลี่ยงสิ่งนี้ได้โดยสมมติว่าเซิร์ฟเวอร์เปิดอยู่ก่อนที่การทดสอบจะเริ่มขึ้นหรือโดยการทดสอบอย่างใดอย่างหนึ่งเริ่มเซิร์ฟเวอร์และการทดสอบครั้งต่อ ๆ ไปจะถือว่าขึ้น แต่มันยุ่งมาก ฉันต้องการให้ไฟล์ทดสอบแต่ละไฟล์เริ่มต้นอินสแตนซ์เซิร์ฟเวอร์ด้วยการตั้งค่าที่เหมาะสมแล้วปิดอินสแตนซ์นั้นเมื่อการทดสอบสิ้นสุดลง นั่นหมายความว่าไม่มีการพึ่งพาแปลก ๆ ในการเรียกใช้การทดสอบและทุกอย่างสะอาด นอกจากนี้ยังหมายความว่าฉันสามารถทำการทดสอบการเริ่มต้น / ปิดเครื่องได้ มีคำแนะนำเกี่ยวกับวิธีการทำอย่างไร ฉันคิดเกี่ยวกับการเรียกใช้ข้อยกเว้นด้วยตนเองเพื่อนำมาลง แต่ดูเหมือนจะยุ่ง ฉันขุดผ่านเอกสาร Express และซอร์ส แต่ดูเหมือนจะไม่พบวิธีการใด ๆ ที่จะปิดเซิร์ฟเวอร์ อาจมีบางอย่างใน socket.io สำหรับสิ่งนี้ แต่เนื่องจากเซิร์ฟเวอร์ซ็อกเก็ตเชื่อมต่อกับเซิร์ฟเวอร์ Express ฉันคิดว่าสิ่งนี้จะต้องเกิดขึ้นที่เลเยอร์ด่วน

4
express 4.0 เซสชันด่วนพร้อมข้อความเตือนแปลก ๆ
ฉันพยายามทำงานผ่านการตั้งค่าแอป nodejs โดยใช้ express 4.x หลังจากสะดุดกับปัญหาการลบมิดเดิลแวร์ในที่สุดฉันก็ใช้งานได้ อย่างไรก็ตามมีข้อความเตือนสองสามข้อความในบรรทัดรหัสต่อไปนี้: app.use(session({secret: '<mysecret>'}) คำเตือนเหล่านี้คือ: Sun, 29 Jun 2014 12:45:10 GMT express-session deprecated pass resave option; default value will change at lib\config\express.js:55:11 Sun, 29 Jun 2014 12:45:10 GMT express-session deprecated pass saveUninitialized option; default value will change at lib\config\express.js:55:11 ในเอกสารประกอบค่าเริ่มต้นสำหรับ resave และ saveUninitialized เป็นจริง ดังนั้นการเปลี่ยนรหัสเพื่ออ่าน …
105 node.js  express 

7
การทดสอบ Mocha API: การรับ 'TypeError: app.address ไม่ใช่ฟังก์ชัน'
ปัญหาของฉัน ฉันได้เข้ารหัส CRUD ง่าย API มากและฉันเพิ่งเริ่มต้นการเขียนโปรแกรมยังทดสอบบางอย่างใช้chaiและแต่ฉันมีปัญหาเมื่อการทดสอบการทำงานของฉันด้วยchai-http$ mocha เมื่อฉันเรียกใช้การทดสอบฉันได้รับข้อผิดพลาดต่อไปนี้บนเชลล์: TypeError: app.address is not a function รหัสของฉัน นี่คือตัวอย่างการทดสอบของฉัน ( /tests/server-test.js ): var chai = require('chai'); var mongoose = require('mongoose'); var chaiHttp = require('chai-http'); var server = require('../server/app'); // my express app var should = chai.should(); var testUtils = require('./test-utils'); chai.use(chaiHttp); describe('API Tests', …

8
Express.js req.ip กำลังส่งคืน :: ffff: 127.0.0.1
ฉันกำลังพยายามรับ IP ของผู้ใช้ที่ร้องขอ ปัญหาคือ IP ที่จะกลับมาแทน::ffff:127.0.0.1 127.0.0.1ฉันลองใช้trusted proxyตัวเลือก (แม้ว่าจะไม่ได้ใช้พรอกซี) และreq.ipsว่างเปล่า ใช้ 4.x Express.js router.get('/', function(req, res, next) { console.log('ip', req.ip) res.send({}) });
105 node.js  express 

7
passport.js passport.initialize () มิดเดิลแวร์ไม่ได้ใช้งาน
ฉันใช้ node กับ express + พังพอนและพยายามใช้ passport.js กับ api ที่สงบ ฉันยังคงได้รับข้อยกเว้นนี้หลังจากการตรวจสอบสิทธิ์สำเร็จ (ฉันเห็น URL เรียกกลับบนเบราว์เซอร์): /Users/naorye/dev/naorye/myproj/node_modules/mongoose/lib/utils.js:419 throw err; ^ Error: passport.initialize() middleware not in use at IncomingMessage.req.login.req.logIn (/Users/naorye/dev/naorye/myproj/node_modules/passport/lib/passport/http/request.js:30:30) at Context.module.exports.delegate.success (/Users/naorye/dev/naorye/myproj/node_modules/passport/lib/passport/middleware/authenticate.js:194:13) at Context.actions.success (/Users/naorye/dev/naorye/myproj/node_modules/passport/lib/passport/context/http/actions.js:21:25) at verified (/Users/naorye/dev/naorye/myproj/node_modules/passport-facebook/node_modules/passport-oauth/lib/passport-oauth/strategies/oauth2.js:133:18) at Promise.module.exports.passport.use.GitHubStrategy.clientID (/Users/naorye/dev/naorye/myproj/config/passport.js:91:24) at Promise.onResolve (/Users/naorye/dev/naorye/myproj/node_modules/mongoose/node_modules/mpromise/lib/promise.js:162:8) at Promise.EventEmitter.emit (events.js:96:17) at Promise.emit (/Users/naorye/dev/naorye/myproj/node_modules/mongoose/node_modules/mpromise/lib/promise.js:79:38) at Promise.fulfill …

8
Express: จะส่งแอปอินสแตนซ์ไปยังเส้นทางจากไฟล์อื่นได้อย่างไร
ฉันต้องการแยกเส้นทางของฉันออกเป็นไฟล์ต่างๆโดยที่ไฟล์หนึ่งมีเส้นทางทั้งหมดและอีกไฟล์หนึ่งเป็นการดำเนินการที่เกี่ยวข้อง ขณะนี้ฉันมีวิธีแก้ปัญหาเพื่อให้บรรลุสิ่งนี้อย่างไรก็ตามฉันต้องทำให้อินสแตนซ์แอปเป็นสากลเพื่อให้สามารถเข้าถึงได้ในการดำเนินการ การตั้งค่าปัจจุบันของฉันมีลักษณะดังนี้: app.js: var express = require('express'); var app = express.createServer(); var routes = require('./routes'); var controllers = require('./controllers'); routes.setup(app, controllers); app.listen(3000, function() { console.log('Application is listening on port 3000'); }); เส้นทาง js: exports.setup = function(app, controllers) { app.get('/', controllers.index); app.get('/posts', controllers.posts.index); app.get('/posts/:post', controllers.posts.show); // etc. }; ตัวควบคุม / …
104 node.js  express 

6
จะทราบได้อย่างไรว่าผู้ใช้ล็อกอินด้วย passport.js?
ฉันอ่านpassport.jsข้อมูลและตัวอย่างมาสองวันแล้ว แต่ไม่แน่ใจว่าหลังจากนั้นฉันก็ทำตามขั้นตอนการพิสูจน์ตัวตนทั้งหมด ฉันจะรู้ได้อย่างไรว่าฉันเข้าสู่ระบบแล้วเช่นฉันจะมีแถบนำทางที่มีปุ่มล็อกอินหรือออกจากระบบมีตัวแปรบางอย่างเช่นโค้ดด้านล่างนี้หรือไม่? if (login) <button>logout</button> else <button>login</button>

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