Tag: express

JSON结果显示SUM MySQL的命令

我得到一个有效的返回计算所有值列我的MYSQL表,但是当我去检查我的api结果; 列值sum命令出现在JSON的结果中。 [ { "SUM(producFinalPrice)": 6000 } ] 这个我的路由器从我的数据库中获取数据。 router.get('/sell/home-card-last-sell-compared-to-the-previous-day', function (req, res) { connection.query('SELECT SUM(producFinalPrice) FROM new_sell', function (err, lastSellComparedToThePreviousDayCardHome, fields) { if (err) { throw err; } res.send(lastSellComparedToThePreviousDayCardHome); } ); }); ` 让我的错误更清晰,我从AJAX中的前一个查询做出最后的请求; 通过这种方式。 $(function () { $.ajax({ type: "GET", url: "/sell/home-card-last-sell-compared-to-the-previous-day", success: function (lastSellComparedToThePreviousDayCardHome) { var $lastSellComparedPreviousDay = $('#last-sell-compared-to-the-previous-day'); $.each(lastSellComparedToThePreviousDayCardHome, function (i, […]

NodeJS – 在渲染之前将数据库查询的结果发送到视图或路由

我正在使用Express JS,Socket IO和Handlebars与NodeJS做一个web应用程序,但我对这些技术很新颖。 我努力find一种方法来将查询结果传递给我的菜单(部分),主要是因为节点是asynchronous的,所以当我的查询返回结果时,页面已经呈现,通过。 main.handlebars(主版面): (…) {{> menu}} (…) {{{body}}} router.js var express = require('express'); var router = express.Router(); var index_controller = require('../controllers/index_Controller'); router.get('/', index_controller.index); module.exports = router; index_controller.js exports.index = function(req, res) { res.render('main_page_html'); }; 这个菜单会出现在每个页面上,我想在这个菜单中显示来自在线人员的名字,这是查询的结果。 我试图把路由function中的查询代码,它的工作原理,但我将不得不复制相同的代码到我有每一个路由,因为如我所说,这个菜单出现在所有的。 如果我尝试在路由function之外执行某个function,则asynchronous会启动,并且没有数据发送到该页面。 这绝对是一个更好的解决scheme。 ps:通过套接字发送我的数据到客户端是一种方式,但我想做的事情是服务器端。 -解- 我按照Tolsee的说法创build了一个中间件,所以现在我可以在需要的每个path中调用这个中间件。 这就是我所做的: menu.js exports.onlineUsers = function (req, res, next) { // database query […]

节点运行时执行服务器端代码

我正在构build一个实践懒猫猫应用程序,并希望实现用户创build自己的消息空间的能力。 创build消息空间时,会创build一个唯一的密钥并存储到我的数据库中。 我的计划是使用这些唯一的键来提供具有消息function的相同的html页面。 从理论上讲,这是可行的,但是我在检索密钥时遇到了问题,并且使用它们来路由到我的message.html文件。 有没有办法运行我的服务器,检索密钥,并将其存储到一个全局variablesTHEN路由到HTML页面? 我正在使用Node,Express和MongoDB。 下面是我的代码在后端检索密钥的样子: var dbKeys = []; db.messageSpaces.find({}, {"_id": 0, "name": 0}, function(error, data) { if (error) { console.log(error); } else { for (var i = 0; i < data.length; i++) { dbKeys.push(data[i].key); } } }); 而我怎么试图路由他们: for (var i = 0; i < dbKeys.length; i++) { app.get(`/${dbKeys[i]}`, function(req, res) { […]

重构反应项目,使其从数据库中加载数据

我有以下的项目结构: public src package.json server.js 在src文件夹里面我有以下内容: components data routes styles views App.js index.js 在组件文件夹中我有所有组件,如AsidePost , Filter , MainNav等。 在视图文件夹中,我有包含组件文件夹中的其他组件的组件 。 在数据文件夹中,我有我的组件的所有数据。 在路由文件夹中,我有Routes.js组件,它导入所有视图,并将视图显示到一个特定的路由: const Routes = () => { return ( <div> <MainNav /> <div className="page-content"> <Switch> <Route path="/home" component={Home} /> …and so on… <Route path="/blog" component={Blog} /> <Route component={PageNotFound} /> </Switch> </div> </div> ) } […]

Azure中的Node.js + Express应用程序击中了500个自己修复的错误

我有一个使用Express 3.4.4的Node.js 4.4.7应用程序有这个神秘的问题。 如果我导航到www.mydomain.com有时会遇到500服务器错误。 需要注意的是,这里的主页进行数据库调用。 紧接着发生这种情况,如果我导航到www.mydomain.com/login页呈现罚款。 没有数据库交易发生在这个页面上。 从login页面,我可以按导航栏中的Home ,我将被带到www.mydomain.com/和页面渲染罚款。 就好像数据库或Web应用程序实例进入睡眠状态并需要唤醒一样。 所以我在我的应用程序设置中启用了Always On ,但是这并没有解决问题。 我还创build了一些警报testing,将一些stream量推送到站点,以便它永远不会入睡。 这有点帮助,但偶尔我会得到警报电子邮件,我的pingtesting仍然失败。 当pingtesting失败时,我可以立即成功loginwww.mydomain.com/login ,然后成功从该页面导航到“Home”。 几分钟后,我收到一个通知,告知我的应用程序状态为“再次健康”。 mydomain.com/路线 exports.index = function (req, res) { var query = "SELECT P.pid, P.title, P.tags, P.topic, P.body_preview FROM Posts P ORDER BY P.date_created DESC"; new req.sql.Request().query(query, function (err, recordset) { if (err) throw err; res.render('index', { rows: recordset […]

做多个MongoDB操作的正确方法

如果我需要在less数集合上执行两三个不同的操作,有没有比链接find/update操作更好的方法? 例如: db.collection('contactinfos').findOneAndUpdate( { _id: ObjectID(contactID) }, { $set: { sharedWith } } ).then(response => { db.collection('users').update( { _id: { $in: sharedWith.map(id => ObjectID(id)) } }, { $addToSet: { hasAccessTo: contactID } }, { multi: true } ).then(response => { db.collection('users').update( { _id: { $in: notSharedWith.map(id => ObjectID(id)) } }, { $pull: { hasAccessTo: contactID […]

ReferenceError:mongoose没有被定义

我得到ReferenceError:mongoose没有定义。 我是新来的节点请App.js代码如下所示如下所示。 我无法通过谷歌提供的所有答案来解决这个问题。 var express = require('express'); var app = require('mongoose'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var index = require('./routes/index'); var users = require('./routes/users'); var app = express(); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.use(logger('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); […]

脚本工作,但不是与node.js

我正在尝试在我的.html页面中使用一个小的Angular脚本。 如果我在浏览器中将页面加载为静态页面,则Angular脚本将正确运行。 如果我运行在res.render语句下加载相同页面的node.js应用程序,则Angular脚本不会运行。 我的理论是我的Angular代码与运行的Express.js代码混淆。 但是,我不知道如何。 这是我的脚本。 的index.html <body> <!–INCLUDE – JS LIBRARIES –> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.6/angular.min.js" type="text/javascript"></script> <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js" integrity="sha256-T0Vest3yCU7pafRw9r+settMBX6JkKN06dqBnpQ8d30=" crossorigin="anonymous"></script> <!–INCLUDE – ANGULAR CONTROLLER –> <script> var app = angular.module('myApp', []); app.controller('formCtrl', function ($scope) { $scope.cucmpub = "xxxx"; }); </script> <!–BODY – BOOTSTRAP PAGE SETUP –> <div class="container-fluid" ng-app=""> […]

Sequelize:TypeError:User.hasMany不是一个函数

我有这个奇怪的行为。 我有一个用户模型和一个客户端模型。 用户有很多客户端。 我正在使用这个文档: http : //docs.sequelizejs.com/manual/tutorial/associations.html 当我运行服务器,Sequelize引发TypeError:User.hasMany不是一个函数 节点版本: 8.9.1 方言: postgres 数据库版本: Postgres 10 续集版本: 4.22.15 以下文件全部在同一个文件夹中 user.js模型 const Sequelize = require('sequelize'); const db = require('../index.js'); //This is an instance of new Sequelize(…) const tableName = 'users'; const User = db.define('user', { firstName: { type: Sequelize.STRING(50), allowNull: false, validate: { notEmpty: true } }, […]

Rest API Node Js&Express,创build链接(href)给自己

目前我正在使用Node JS&Express中的REST API。 我必须为API中的每个资源创build一个链接,就像以上的例子。 { "id": "20281", "title": "test", "body": "test", "date": "2017-11-14 09:01:35", "_links": { "self": { "href": "https://docent.cmi.hro.nl/bootb/demo/notes/20281" }, "collection": { "href": "https://docent.cmi.hro.nl/bootb/demo/notes/" } } }, 我知道我可以在我的控制器中处理这个,因为req对象是可用的。 但是最好在我的模型中创build一个虚拟字段,以便dynamic地创build链接,而不是将其保存在数据库中。 什么是最好的方法来做到这一点? DB: MongoDB ODM: Mongoose