Tag: 表示

错误:options.uri是必需的参数

我正在使用node.js v4.6.0和express,request和body-parser的最新版本,但是我得到了一个我无法修复的错误代码,有什么想法? 这是我的代码: var express = require('express'); var request = require('request'); var bodyparser = require('body-parser'); var app = express(); app.use(bodyparser.urlencoded({extended: true})) var webhook = process.env.DISCORD_WEBHOOK; app.get('/', (req, res) => { res.sendFile(__dirname + '/index.html'); }); app.post('/webhook', (req, res) =>{ request({ method: 'POST', url: webhook, json: { "content": req.body.msg, "username": "Potato" } }); res.redirect("/"); }); app.listen(80, () […]

NodeJS,Webpack,意外的标记<

我是networking开发新手,刚刚完成我的第一个使用Webpack和React的辅助项目 。 我试图通过创build自己的NodeJS服务器而不是使用Webpack-dev-server从项目中使用的开发环境转移到生产环境。 这是我的代码: webpack.production.config.js var HtmlWebpackPlugin = require('html-webpack-plugin'); var HtmlWebpackPluginConfig = new HtmlWebpackPlugin({ template: __dirname + '/app/index.html', filename: 'index.html', inject: 'body' }) var config = { devtool: 'source-map', entry: './app/index.js', output: { path: __dirname + '/dist', filename: "index_bundle.js", publicPath: __dirname + '/dist' }, module: { loaders: [ {test: /\.js$/, exclude: /node_modules/, loader: "babel-loader"}, {test: […]

快速路由器绕过

在快速服务器中,我正在使用用户根据权限显示不同的内容。 app.use("/user", ensureAdmin, …myAdminFunc); app.use("/user", …myFunc); 现在,在我真正的代码中,我把它分解成了它自己的Express.Router对象。 并做了app.use(adminRoutes); 目前所有简单的东西。 我发现next("route")函数不能按照我预期的方式工作。 我已经读了,我仍然需要在路由器内的每个路由上使用ensureAdmin中间件function。 我现在有下面。 function ensureAdmin(req, res, next) { /*if not admin*/ next("route"); } admin.get("/user", ensureAdmin, …myAdminFunc); admin.get("/other", ensureAdmin, …myOtherAdminFunc); 我希望我能做一个中间件,并绕过整个路由器,如果需要的话。 诸如此类的东西 function ensureAdmin(req, res, next) { /*if not admin*/ next("skip everything in this router"); } admin = new Express.Router(); admin.use(ensureAdmin); admin.get("/user", …myAdminFunc); admin.get("/other", …myOtherAdminFunc); 但是当我在ensureAdmin中调用next("route") ,它仍然继续到admin.get("/user", […]

400(坏请求)使用获取login

我正在尝试使用抓取到POSTlogin表单我的loginfunction使用护照。 当使用标准表单action =“/ login”时,login工作,但是我想要去取得能够显示实时错误输出,如果login失败,不刷新… 我得到400(坏请求)和Uncaught(在诺言)SyntaxError:意外的标记B在JSON在位置0时发送login请求… 这是我的代码: let payload = { username: "user1@user1.se", password: "superman123" }; let data = new FormData(); data.append( "json", JSON.stringify( payload ) ); console.log(data); fetch('/login', { method: 'post', body: data }).then(function(response) { // if (response.status >= 400) { // throw new Error("Bad response from server"); // } return response.json(); }) .then(function(data) { […]

iisnode 401消息返回iis页面

我正在build立一个应用程序,我使用nodejs express来完成其他api服务。 我使用iisnode模块在windows server 2012上托pipe了这个应用程序。一切都很完美。 问题是,当我从节点应用程序返回404(未授权)消息时,终点是接收到iis的错误页面的401 http状态。 有没有其他方法可以解决这个问题。 这是我的webconfig文件 <!– indicates that the hello.js file is a node.js application to be handled by the iisnode module –> <handlers> <add name="iisnode" path="app.js" verb="*" modules="iisnode" /> </handlers> <!– use URL rewriting to redirect the entire branch of the URL namespace to hello.js node.js application; for example, the […]

expressjs socket.io端口3000已经在使用中

我需要指定不同的端口快递(3000)和socket.io? 错误:端口3000已被使用 我的代码: index.js var express = require('express') ,router = express.Router() , app = express() , http = require('http') , server = http.Server(app) , io = require('socket.io').listen(server) server.listen(3000); router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); io.on('connection',function(socket){ console.log("A user is connected"); socket.on('point1', function (value) { socket.broadcast.emit('point1',value); }); socket.on('less1', function (value) { socket.broadcast.emit('less1',value); […]

NodeJS Multipart / form-data与数组

我在使用enctype multipart/form-data和发送具有相同名称的input作为数组时遇到了一些麻烦。 我似乎只能得到一个上传的图像或arraysinput,但不能同时… 例如,我有这样的forms: <form method="post" action="/test"> <input name="testinput" value="valueA"> <input name="testinput" value="valueB"> <input type="file" name="fileattachment"> <input type="submit" value="Submit"> </form> 如果我将表单的enctype设置为multipart/form-data ,如下所示: <form method="post" action="/test" enctype="multipart/form-data"> 我最终在我的NodeJS应用程序中收到'fileattachment'就好了,但是我只获得'testinput'的最后一个值,就像这样: //req.body //— { testinput: 'valueB' // I'm missing valueA! } //req.files //— { fileattachment: { name: 'biglogo.png', data: <Buffer 89 … >, encoding: '7bit', mimetype: 'image/png', mv: [Function] […]

服务器端事件(SSE)没有到达客户端

我正在使用MEAN,我试图从服务器端接收事件。 为此,我使用EventSource,但它不工作。 我看到连接是如何打开的,但是我没有收到来自服务器的消息。 我可以看到在节点控制台如何发送消息,但在客户端没有什么(浏览器控制台)。 我有点迷路,因为我按照我find的所有教程,但使用完全相同的代码,它不工作。 在客户端,这是我的AngularJS代码: var source = new EventSource('/api/payments/listen'); source.addEventListener('open', function(e) { console.log('CONNECTION ESTABLISHED'); }, false); source.addEventListener('message', function (e) { $scope.$apply(function () { console.log('NOTIFICATION'); console.log(e.data); }); }, false); source.onmessage = function (e) { console.log('NOTIFICATION!'); console.log(e); }; source.addEventListener('error', function(e) { if (e.readyState === EventSource.CLOSED) { console.log('CONNECTION CLOSED'); } }, false); 服务器端代码: exports.listen = function […]

Nodejs请求代理stream(mjpeg)连接永远不会结束

(不必要的背景)我有一个nodejs服务器与expressjs框架,代理stream媒体摄像头饲料。 我需要这个的原因是因为复杂的CORS问题,mjpgstream必须来自这个服务器。 //proxy from webcam server to avoid CORS complaining app.get('/stream1',function(req,res){ var url="http://camera.nton.lviv.ua/mjpg/video.mjpg" request(url).pipe(res); }); 问题:这个问题很简单。 request(url).pipe(res)永远不会closures,因为源文件是从未结束的mjpeg。 当客户端(浏览器;目的地)不再可用时,我需要find强制closures此pipe道的方法,如closures窗口。

如何使用套接字发送大文件?

我有一个zip文件(15 MB),想要发送到android套接字连接,我可以通过以下代码发出: fs.readFile('path',function(err,fileData){ io.to(socketId).emit('sendFile',{'file':fileData.toString('base64')}); }); 使用上面的代码,小文件发送没有任何延迟,如果有任何大尺寸的文件发送延迟。 如何以更好的方式实现这一点。