Tag: express

在knex中迁移表:存储媒体,图像或blob

我正在尝试将关系迁移到我的postgres数据库。 问题是我不知道图像使用什么值types。 exports.up = function (knex, Promise) => { return knex.schema.createTable('observations', (table) => { table.increments(); table.integer('user_id').notNullable(); table.blob('image').notNullable(); //??? table.string('category').notNullable(); table.string('description').notNullable(); table.boolean('approved').notNullable().defaultTo(false); table.float('latitude').notNullable(); table.float('longitude').notNullable(); table.timestamp('created_at').defaultTo(knex.fn.now()); }); }; 我以为会有一个“blob”文件types,但在文档中似乎没有迁移任何媒体的迹象。 请帮帮我。

如何让我的数据库在我执行api调用时不追加状态?

所以我正在尝试使用MEAN堆栈创build一个简单的博客应用程序。 我能够成功地写入我的本地mongo数据库,但是当我打电话给我的数据库时,它附加了额外的信息到我的查询,这使得很难重复。 以下是响应的样子: [{"_id":"135","title":"aaaaaa","body":"aaaaaa","__v":0,"posted":"2017-08-05T08:46:27.159Z"}, {"_id":"136","title":"bbbbb","body":"bbbbb","__v":0,"posted":"2017-08-05T08:46:40.232Z"}] 200 function (d){b||(b=vd(a));return d?(d=b[Q(d)],void 0===d&&(d=null),d):b} {"method":"GET","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","url":"/api/blogpost","headers":{"Accept":"application/json, text/plain, */*"}} OK 我只想在对象中使用“aaaa”和“bbbb”的前两个元素,所以我可以使用ng-repeat来获取标题,正文等。这就是我在index.html中显示信息的方式: <input ng-model="post.title" class="form-control" placeholder="title"> <textarea ng-model="post.body" class="form-control" placeholder="body"></textarea> <button ng-click="createPost(post)" class="btn btn-primary btn-block">Post</button> <div ng-repeat="post in posts"> {{post}} </div> 以下是我的Angular获取代码的外观: function getAllPosts() { $http({ method: 'get', url: '/api/blogpost' }).then( function (posts){ $scope.posts = posts; }, function (error){ console.error("Inside app.js._getAllPosts().error"); }); […]

如何在我的所有请求查询string中包含JSON webtoken

我刚刚学会了如何使用JSON webtoken。 我已经能够在login时生成JSON webtoken,并且还设置了中间件来validation我的令牌并保护JSONvalidation中间件以下的路由。 每次我尝试访问受保护的路由时,都会手动添加令牌: ?token=gwt3r7r….到我的GET请求的末尾。 我知道这不应该是一个真正的应用程序的情况。 我希望这是dynamic完成的。 这如何dynamic地完成?

如何连接各种mongoose结果到一个JSON数组显示在DataTable上?

我需要连接不同的mongoose查询结果到一个数组。 我有一个像branch_data一样的mongoose结果 [ { _id: 59a270e53abb8426805b97fb, client_name: 'Client 1', branch_name: 'Branch 1', router_serial: '111111111', data_card_serial: '11111111', sim_number: '11111111111', modem_serial: '11111111111', idu_serial: '1111111111', dispatch_date: '08/27/2017', status: 'installed', action: 'primary();', __v: 0, ir_report: '201708271241491111111111.xlsx', notes: '111111111111111111', ip_address: '1111111111111', installation_date: '08/01/2017' }, { _id: 59a274045f867701fc07792e, client_name: 'Client 2', branch_name: 'Branch 2', router_serial: '2222222222222', data_card_serial: '22222222', sim_number: '2222222222222', modem_serial: […]

如何在NoSQL和SQL之间进行select?

我的问题是,我想学习nodejs / express,并做一个超级简单的Web项目。 这将是一个数据库与表:用户,video_games,类别。 该网站将只显示游戏列表(只是一个例子)。 在这种典型的情况下,什么会更有效:Mysql或MongoDB(SQL或NoSql)?

节点MySQL – 在发送之前编辑响应

我正在使用Node和MySQL 。 我正在从Node中的MySQL中获取数据,如下所示: app.get('/getposts', (req, res) => { connection.query("SELECT * FROM posts", function(err, rows, fields){ if(err){ console.log(err); } else if(rows.length) { res.send(rows) // <= Edit this res before sending. } else { res.send('No Posts') } }); }); 我得到以下回应: [ {id:1, name:'post1', desc: 'post1 desc' }, {id:2, name:'post2', desc: 'post2 desc' }, {id:3, name:'post3', desc: 'post3 […]

在浏览器中轮询并从AJAX获取MQTT消息

初学者在这里。 好的,我试图完成一个简单的数据stream: MQTT-Data-source —> MQTT Broker —> NodeJS-MQTT-Client —>浏览器上的AJAX(每3秒轮询一次) 我希望能够获得MQTT消息,并在浏览器端的AJAX组件中显示它。 其次,在console.log(mqttMessage); ,我如何清除以前的消息? 因为在控制台上,我可以看到所有以前的数据以及新增的数据。 我在Express上使用mqtt.js作为我的nodejs mqtt支持。 //Server.js var mqtt = require('mqtt'); … … var getData = function() { mqttClient.subscribe(mqttTopic); mqttClient.on('message', function(topic, message) { mqttMessage = message.toString(); console.log(mqttMessage); }) return mqttMessage; } app.get('/pollData', function(req, res) { res.send(getData()); }); 而在一个简单的HTML页面上,我有: <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js"></script> <script> $(document).ready( function() { setInterval(function() […]

如何使用app.method()来进行授权

我正在尝试使用快速然后next('route')但我没有在如何做到这一点的文件中find很多, 这里提到。 但是并没有解释如何去做 将只在通过使用app.METHOD()或router.METHOD()函数加载的中间件函数中起作用。 我没有得到他们的意思,因为我从来没有用过app.METHOD()之前,无法find关于如何正确使用next('route')文档。 这会工作吗? app.method('*', (req, res, next) => { if(req.user == null) { next(); } else { User.findOne({"_id": req.user.id}, function(err, result) { if(err){ console.log(err); } else { if(stripe.active == false && stripe.trial == false){ res.render('/dashboard/billing'); next('route'); } else { next(); } } }); } }); 这甚至会工作吗? 我猜在那里我搞砸了一些东西。 如果我这样做,那么它会find一个用户,然后检查是is_active和is_trial是假的,如果是这样跳到下一个路线。 我这样做的想法是,使用该网站的任何部分没有login的用户,那么当有login用户,都是假的,我只让他们去/dashboard/billing 。 我build议这样做,以防止尚未付款的用户访问我的应用程序。 我正在testing的路线: […]

nodemon – 应用程序崩溃 – 在启动之前等待文件更改

我刚开始学习Node.js 这个小应用程序的想法是使用express和mongosse将一些用户存储在基于云的数据库中(mongoDB通过mlab)。 我有两个单独的文件: User.js(models / User.js) var mongoose = require('mongoose'); module.exports = mongoose.model('User', { email : string , pwd : string }); server.js(档案根目录) var express = require('express') var cors = require('cors') var bparser = require('body-parser') var mongoose = require('mongoose') var User = require('./models/User.js') var app = express() app.use(cors()) app.use(bparser.json()) app.post('/register', (req,res) => { userData = […]

ExpressJS:自定义错误模块不能识别此错误

我正在运行一个Express.JS后端,并设置为返回一个自定义消息422错误,如果用户尝试注册一个已经在使用的电子邮件,如下所示: const existingUser = await User.findOne({ email: email }); if (existingUser) { return res.status(422).send({ error: 'Email is already in use' }); } 不过,我在前面看到的回应是这样的: "response":{"data":"The custom error module does not recognize this error.","status":422,"statusText":"Unprocessable Entity" 显然,有些东西正在改变前端的错误。 我现在正在本地运行此开发,但生产部署到Azure,所以我有一个Web.config文件和一个iisnode.yml。 我已经将此代码添加到前者,以确保它不会导致问题: <system.webServer> <httpErrors existingResponse="PassThrough"> </httpErrors> </system.webServer> 我如何去解决这个问题?