Tag: express

无法将表单数据提取到mongoDB

这是我的app.js: var express = require("express"), mongo = require("mongodb"), db = require("monk")("localhost:27017/nodemails"), bodyParser = require("body-parser"), logger = require("morgan"), path = require("path"); var app = express(); var router = express.Router(); var port = 3000; app.use(router); app.use(express.static(__dirname, "public")); app.use(logger("dev")); router.use(bodyParser.urlencoded({extended: true})); router.use(bodyParser.json()); // Connect my DB here app.use(function (req,res,next) { req.db = db; next(); }); // Catch 404 […]

PassportJS本地策略不工作Withh MongoDB

我试图得到与PassportJS用户身份validation的处理,我不能让我的数据库设置工作。 我在没有 Mongoose的情况下使用MongoDB,我无法使LocalStrategy模块工作。 希望我的数据库查询不是太麻烦阅读。 本地策略: passport.use(new LocalStrategy( function(username, password, done) { //Fire up database mongo.connect("mongodb://localhost:27017/formulas", function(e, db) { if (e) {return next(e);} var col = db.collection("users"); //Do a database query to find a record by username col.findOne({"username": username}, function(err, user){ if (err) { return done(err);} if(!user) { return done(null, false, { message: "Please check your […]

MongoDb与外部数据库集成

我有一个数据库,其中包含来自两个独立系统/服务器的数据。 第一个是本地生成的[我开发和创build这个数据](用户,活动日志,订单,…)。 第二个来自“产品提供者”[我只有从API读取权限]这些对象是由MySQL创build的,并以JSON发送。 他们已经有一个“ID”属性。 使用NodeJS,我使用请求通过“id”获取产品,然后使用newProduct.save()存储它以附加一个_id 。 在产品中,“id”是与我的数据库中的其他集合(例如products_price)build立关系所必需的,并且访问诸如“products /:id / promos”之类的dynamic端点。 请注意,产品不断更新外部,我需要能够更新我的文件由“id”而不是“_id”,因为外部服务器不知道“_id”。 [id在集合级别上是唯一的,因为每个集合都是新的迭代] 对于我的第一个问题:我应该将“product.id”作为“常规”MongoDB字段,并使用聚合/查找来合并我的集合中的文档? 或者我应该用id来覆盖ObjectID()? (在保存重命名“id”为“_id”之前) 在某些情况下,订单(本地)和产品(外部)需要形成一个关系,Order _id和Product id(或_id)存储在一起以便于检索。 我在这种情况下使用哪个ID?

一旦生成(节点,快速),自动下载PDF

我正在使用下面的节点模块html-pdf将html转换为pdf。 我已经成功地将HTML转换为PDF格式,但是一旦创build完成,我无法下载文件。 生成PDF的代码: var fs = require('fs'); var pdf = require('html-pdf'); var html = fs.readFileSync('./test/businesscard.html', 'utf8'); var options = { format: 'Letter' }; pdf.create(html, options).toFile('./businesscard.pdf', function(err, res) { if (err) return console.log(err); console.log(res); // { filename: '/app/businesscard.pdf' } }); 我怎样才能在浏览器中打开PDF以供用户查看,或者在浏览器中自动下载PDF,而用户不必经过另一个步骤。

Ajax DELETE请求似乎只删除列表中的第一个项目

我一直在重复使用这些代码进行不同的项目,但是对于这个项目来说,这似乎不起作用。 我正在使用Express和Mongoose,并使用它来存储大学课程详细信息列表。 这是Schema。 exports = module.exports = function(app, mongoose) { var moduleSchema = new mongoose.Schema({ pivot: { type: String, default: '' }, module_name: { type: String, required:true}, module_code: {type: String, required: true}, description: {type: String} }); moduleSchema.plugin(require('./plugins/pagedFind')); moduleSchema.index({ pivot: 1 }); moduleSchema.index({ module_name: 1 }); moduleSchema.index({ module_code: 1 }); moduleSchema.index({ description: 1 }); moduleSchema.index({ search: […]

将jQuery ajax调用转换为vanilla Javascript – 不能POST / public / error

所以这是我昨天的一个问题的轻微后续( 更新node.js中的HTMLinput值,而不改变页面 ),我试图提交一个HTML表单,发送一个Ajax请求到我的服务器,提供两个数字,这些号码被添加到服务器上,然后显示在与表单相同的HTML页面上的一个框中。 到目前为止,我收到了JQuery中的一个解决scheme,这个解决scheme非常有用,但是我的经理希望在JavaScript中完成各种原因。 到目前为止,我已经走了一段路,但是很多人为此使用JQuery,而香草javascript方法的例子很less。 目前,在提交页面抛出“不能POST / public /”,我是新来的Ajax,所以我相当确定问题在那里。 我的(工作)JQuery代码: $(document).ready(function(){ $("#add").submit(function(event){ event.preventDefault(); var num1 = $("#numa").val(); var num2 = $("#numb").val(); $.ajax({ method: "post", url: '/add', data: JSON.stringify({ num1: num1, num2: num2 }), contentType: 'application/json', success: function(data){ $("#answer").val(data); } }) }) }) 我尝试转换为javascript: function add(){ var xml = new XMLHttpRequest(); var num1 = document.getElementById("numa"); var […]

向节点发送请求返回404

我有这个在jQuery中: $.ajax( { type: 'POST', data : mydata, url : '/routerfunction', dataType : 'String', success : function(data) { //do stuff }, error: function(xhr, status, error) { console.log(error); console.log(xhr); console.log(status); }, } 我有这个在index.js(节点) router.post('/routerfunction/:mydata', function(req,res) { //do stuff } 我有这app.js(节点) app.use('/', index); app.use('/users', users); 当我做一个POST请求routerfunction,我得到404错误。 我真的试图find错误,但我不能。错误在哪里? 提前致谢。

Express Router:id

这是我第一次尝试使用Angular / Nodejs / Express从SQL Server获取信息。 我已经尝试了几个不同的实现,结果似乎是相同的。 这应该很容易,我在这里做错了什么? 使用邮差,无论我使用哪条路线,它都会返回所有logging。 /:id的path也会带回所有logging,而不仅仅是一个。 谢谢你的帮助! var express = require('express'); // Web Framework var bodyParser = require('body-parser'); var sql = require('mssql'); // MS Sql Server client var app = express(); app.use(bodyParser.json({ type: 'application/json' })); var router = express.Router(); app.use("/api/images/", router) //CORS Middleware app.use(function(req, res, next) { //Enabling CORS res.header("Access-Control-Allow-Origin", "*"); […]

expressionPOST req.body分析器是空的

我看到堆栈溢出类似的问题,并find解决scheme使用: app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); 但是,当打印日志req.body是空白的。 app.js内容: var express = require('express'); var path = require('path'); var app = express(); var bodyParser = require('body-parser'); // Define the port to run on app.set('port', 8888); app.use(express.static(path.join(__dirname, '/webapp/public'))); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); app.post('/getsolution', function (req, res) { console.log("request body is",req.body); //—-req.body is blank here }); 从angular度发布请求代码如下 var […]

节点/expression4:在ajax文章上用express-validator显示错误

我是新来的节点,并试图显示validation错误(使用expressionvalidation和expression4),当用户尝试提交表单。 validation器似乎工作,因为如果我login数据控制台一切都如预期。 但是,当我渲染视图时,我无法在页面上显示错误(不显示任何内容)。 与我一直在进行快速validation的“标准”教程的唯一区别是,我使用AJAX发布数据。 我的代码如下。 我用[…]表示还有更多的代码被删除,为了简洁起见我省略了一些表单域。 app.js var express = require('express') , indexController = require('./routes/index') , membersController = require('./routes/members') […] , cookieParser = require('cookie-parser') , bodyParser = require('body-parser') , expressValidator = require('express-validator'); var app = express(); […] app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(expressValidator()) // tried both placing it here or below app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); // […]