Tag: 表示

使用socket.io将API中的数据广播到客户端

我不确定我想要达到的是正确的做法,因为我找不到任何例子。 我有一个应用程序正在显示一个谷歌地图和多个对象。 我希望对象的位置每隔2秒自动更新一次。 我正在考虑让一个具有setInterval()的nodejs服务器,这个服务器每2秒触发一次,向另一个服务器执行一个API请求,获取数据响应并将其广播到所有socket.io客户端。 这是我目前使用的server.js : var express = require('express'), server = express(), port = 3700, host = 'localhost', io = require('socket.io').listen(server.listen(port, host)); server .get('/', function(req, res){ res.send('OK'); }); io.sockets.on('connection', function(socket){ console.log('connection started'); // Update the server date every seconds setInterval(function(){ socket.emit('date', {'date': new Date()}); }, 1000); // Update locations every minutes setInterval(function(){ console.log('Client: ' […]

types错误:对象{…}没有方法“查找” – 当使用expression的mongoose

我无法使用mongoose模式从MongoDB获取数据。 我第一次testing只用mongoose在一个单一的文件(mongoosetest.js),它工作正常。 但是当我开始用高速路线和configuration文件分割它时,情况开始中断。 我确定这很简单,但是我花了最近3个小时的search结果,试图弄清楚我做错了什么,找不到与我的过程相匹配的任何足以进行比较的东西。 mongoosetest.js(这工作正常,但不适用于我的应用程序) var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/meanstack'); var db = mongoose.connection; var userSchema = mongoose.Schema({ name: String }, {collection: 'users'}); var User = mongoose.model('User', userSchema); User.find(function(err, users) { console.log(users); }); 这些文件是我有问题的地方。 我确定这是愚蠢的,可能是使用外部文件,导出和需求的直接结果。 我的server.js文件只是启动和configuration快递。 我也有一个路由文件和一个数据库configuration文件。 路由文件(allRoutes.js) var express = require('express'); var router = express.Router(); var db = require('../config/db'); var User = db.User(); // […]

从玉传递variablesng-init不起作用

我正在尝试从angular色中传递一个对象从玉到ng-init 这:不起作用: ng-init='tables=!{JSON.stringify(tables)}' 这:扩大,但是, ng-init='tables=#{JSON.stringify(tables)}' 输出是未翻转的并填充有" 小号 ng-init="tables={"12":{"id":…. 在这两种情况下都不更新视图。 这篇文章暗示,第一个应该工作,但正如我所说,它甚至不扩大, ng-init='tables=!{JSON.stringify(tables)}' 在源代码中显示完全相同的HTML源代码 ng-init='tables=!{JSON.stringify(tables)}'

Nodejs Passportvalidationcallback没有被错误地调用

我看过类似的问题,但我找不到正确的答案。 我试图用nodejs + express +护照(本地策略)实现一个非常简单的login表单。 事情是,我的身份validationcallback似乎总是失败。 我已经删除了testing数据库的每个连接(每个教程都有一个示例MongoDB)。 这是我的login表单 <html> <body> <form action="/login" method="post"> <div> <label>Username:</label> <input type="text" name="username" /> <br/> </div> <div> <label>Password:</label> <input type="password" name="password" /> </div> <div> <input type="submit" value="Submit" /> </div> </form> </body> </html> 这是我的server.js(我运行npm启动) var express = require('express'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var app = express(); var […]

导入path不能以'.ts'结尾 – NodeJS和Visual Code

我试图构build一个简单的NodeJS应用程序时出现错误: 即使这个可视代码提示错误,我的代码正在运行..当我从导入语句中删除.ts扩展名,我得到一个错误,该文件无法find。 我正在使用webpack,但这些文件来自服务器。 这是我的文件夹结构: 这是我的webpack文件: var webpack = require('webpack'); var helpers = require('./helpers'); //# Webpack Plugins var CopyWebpackPlugin = (CopyWebpackPlugin = require('copy-webpack-plugin'), CopyWebpackPlugin.default || CopyWebpackPlugin); const HtmlWebpackPlugin = require('html-webpack-plugin'); const ForkCheckerPlugin = require('awesome-typescript-loader').ForkCheckerPlugin; var ExtractTextPlugin = require('extract-text-webpack-plugin'); //# Webpack Constants const ENV = process.env.ENV = process.env.NODE_ENV = 'development'; const HMR = helpers.hasProcessFlag('hot'); const METADATA = […]

如何设置connect-multiparty上传文件的名称?

我有一个页面,我想要接受一个文件和3-4个用户input,我可以使用连接多方中间件来实现,但上传文件的名称是乱码,正确的扩展名,上传的文件内容也是如此正确。 我想实现下面的东西 设置正在上传的文件的名称 如果在目标目录中存在具有相同名称的文件,则使用不同的名称创build文件的副本 设置文件大小限制和限制文件types的最大限制。 我在网上search,但找不到任何工作的例子。 我的完整代码如下 var express = require('express'); var router = express.Router(); var fs = require('fs'); var multiparty = require('connect-multiparty'); var multipartyMiddleware = multiparty({ uploadDir : '../public/uploads' }); router.post('/api/user/uploads', multipartyMiddleware, function(req, res) { var file = req.files.file; console.log(file.name); console.log(file.type); console.log(file); console.log(req.body.test); console.log("The file was saved!"); res.json({ success : 1 }); return; }); […]

如何在Node.JS项目中正确调整我的代码?

[TL; DR]只读粗体字 。 我很新的Node.JS,但一直在罚款build设一些工作项目。 现在我有一个炙手可热的问题,我一直在谷歌search了大约半个小时,但我能find的是令人沮丧的轻触式教程,不回答我的问题,所以在这里我去… 我有一个使用Express框架的Node.JS项目 。 其中一条路线的代码现在变得相当大,所以很自然地,我作为一个好程序员的直觉就是把它分解成它自己的类或者模块或者包或者任何它被称为的东西……这就是我的问题。 Node.JS的语言教程在哪里?人们如何将自己的代码划分为整齐的,易于阅读的块? 看来每个指导都是这样的 创build一个NodeJS项目 在项目中安装一个npm模块 添加一个调用模块的单线路由 轻拍自己,开始作为一个完整的JavaScript开发者申请工作。 这是在我的头! 我想用一些复杂的定制代码来深入和肮脏,但我也想用一些适当的,标准化的方式来做事情,但我不知道要创build什么文件夹,如何嵌套它们,遵循什么命名约定或类似的东西。 杰夫之路在哪里NodeJS? 请有人指点我一个好的教程的方向或围绕这个问题的一些文件,所以我可以继续我的学习。 提前致谢。

Google Maps API的TypeScript 2定义

我正在Visual Studio 2015中使用TypeScript 2,Node JS,Express 4和MongoDB(以Mongoose作为ORM)。我尝试安装Google Maps API库,但是没有成功。 我用“npm install @ google / maps”( https://www.npmjs.com/package/@google/maps )和TypeScript 2定义“npm install @ types / googlemaps”( https:// www .npmjs.com / package / @ types / googlemaps )。 问题是他们有不同的名字! (两者都是官方版本)。 所以编译器告诉我,当我写require(“@ google / maps”)时,找不到模块“@ google / maps”。 我会非常感激,如果你能帮助我,因为我真的需要它为我的项目。 谢谢!

Express(或者Koa)和Micro

我想创buildNode.js微服务。 每个微服务都会做一件事,但是应该公开一些额外的端点来获得关于它的信息统计(检查是否存活,检查内存等)。 npm包“Micro”比“Express”(或“Koa”)有什么优势?

我怎样才能使用两个不同的路线呈现一个Handlebars文件?

我正在从新闻网站上刮取文章。 我已经成功地刮掉了文章,数据成功地到达了前端。 (它console.log正确)。 我的问题是,我无法使用button将数据呈现到页面上 – 数据只在刷新时填充页面。 我知道这个问题与Handlebars有关,因为如果我尝试使用jQuery呈现页面,它就可以工作。 我相信这与我的路线有关。 我通过/ articles路由将数据发送到页面,但正如您所看到的,我没有具体使用res.render或res.redirect。 我想这就是为什么它不起作用? 但是,我不知道如何解决这个问题。 我在路由和callback方面有点不稳定。 我是新来的编码,但我向你保证,我已经研究和尝试了无数的修复无济于事。 任何帮助或指导表示赞赏。 谢谢。 app.get("/", function(req, res) { db.Article .find({}) .then(function(dbArticle) { // res.render("index"); res.render("index", { articles : dbArticle }); }); }); app.get("/scrape", function(req, res) { axios.get("https://www.nytimes.com/section/technology? action=click&pgtype=Homepage&region=TopBar&module=HPMini Nav&contentCollection=Tech&WT.nav=page") .then(function(response) { var $ = cheerio.load(response.data); $("a.story-link").each(function(i, element) { var results = {}; results.link […]