Tag: 表示

未捕获的SyntaxError:意外的令牌var Node.js

我正在使用Node.js,并试图显示一个图表,生成的坐标从一个txt文件,被上传到服务器。 我的问题:当我打开网页上传文件,一切正常,但图表不工作:我得到以下错误: UncaughtSyntaxError:意外的令牌var。 如果我呈现没有node.js的网页一切正常。 代码: var express = require("express"); var app = express(); var fs = require('fs'); // we will need it for file uploads var port = process.env.PORT || 3000; app.configure(function(){ app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(express.static(__dirname + '/public')); }); app.get('/', function(req, res) { res.send('<form method="post" enctype="multipart/form-data">' + '<p>Image: <input type="file" name="uploadfile" /></p>' + '<p><input type="submit" […]

将GETparameter passing给Express + Mongoose Restful API

我刚刚进入Node,Express和Mongoose。 到目前为止,爱不释手,但无法弄清楚如何将来自AJAX调用的MongoDB过滤传递给API。 我有一个简单的jQuery AJAX请求是这样的: $.getJSON('/api/products', { filter: { status: 'active' } // <– Want this to get processed by the API }, function(products){ console.log(products); }); 这里是我的Express + Mongoose API的重要部分: // Define Mongoose Schema var Schema = mongoose.Schema; // Product Schema var ProductSchema = new Schema({ name: { type: 'string', required: false }, price: { type: […]

res.send,如何退出后?

在调用res.send() ,是否需要调用一个返回值或以某种方式退出callback函数,以确保没有进一步的代码执行? 就像在PHP中调用一个头函数时一样,你需要在之后调用exit来阻止进一步的代码被执行。 app.post('/create', function(req, res) { if(req.headers['x-api-key'] === undefined) { res.send({msg: "Goodbye"}); } // other code that should only be processed if it has that header. });

如何在Node.js中将base64解码为图像文件?

我知道这个问题被问了几次,但不幸的是,似乎没有任何工作对我来说。 我张贴img的src到我的节点/快递。 它看起来像这样: data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD//gA+Q1JF … UUUUAFFFFAH/2Q== 数据保存在图片中。 我裁剪的数据:图像的东西,并得到了原始的base64和文件types。 var result = { "type":"", "data":"" } var matches = picture.match(/^data:image\/([A-Za-z-+\/]+);base64,(.+)$/),response = {}; result.type = matches[1]; result.data = new Buffer(matches[2], 'base64'); require('fs').writeFile(mediaFolder+'/test.'+result.type, result.data, "binary", function(err){ res.status(500).send("error"); }); res.status(200).send("success"); 当我尝试打开保存的图像时,会说:损坏或太大。 我也尝试在writeFile方法中设置“binary”参数。 客户端总是获得200 http状态。 我不知道这有什么问题。 我用在线解码器检查了原始的base64string。 它工作完美。 我logging每一个string/比赛,一切看起来对我来说没问题。 任何帮助将很好解决这个问题。 提前致谢! 编辑: 这是我发送图片的方式: var base64Image = $('#show-picture').attr('src'); xmlhttp.open("POST","/webapp-ajax",true); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xmlhttp.send("picture="+base64Image);

如何在保存到Mongoose(ExpressJS)之前在模型中格式化数据

我从string格式的用户得到date,我目前转换成控制器中的date之前创build模式对象和保存。 有没有办法将这个逻辑推到模型上,因为在我看来,模型是正确的地方 var RunSchema = new Schema({ created: { type: Date, default: Date.now }, starttime: { type: Date, default: Date.now } }); 目前我这样做 //req.body = {starttime;'2.05.2013 11:23:22'} var run = new Run(req.body); // util.getDate(datetime) returns false if invalid and Date() if valid // req.body.starttime = '2.05.2013 11:23:22'; run.starttime = util.getDate(req.body.starttime); run.save(function(err) { if(err) { } […]

Node.js和Express; 开机自检404

我无法让我的服务器使用node.js和express来从客户端调用一个函数。 我不需要传递数据,我只需要警告服务器它应该调用一个函数。 这是我有(以下大量的教程): 客户: $.ajax({ type: 'POST', url: 'http://localhost:3001/admin', sucess: function() { console.log('sucess'); } 服务器: var express = require('express'); var app = express(); var server = require('http').Server(app); app.set('port', process.env.PORT || 3001); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'hjs'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use('/', routes); // catch 404 and […]

“”使用Express for Node.js

以下工作对我来说非常好: app.get('/doi/meta/:doiName1/:doiName2', function(request, response) { var path = '/doi/json?doi='+request.params.doiName1+'/'+request.params.doiName2; // etc. 例如,我可以打电话给: curl -X GET http://localhost:1337/doi/meta/09.1010/9347426 并得到我期待的答复。 (请注意我查询的对象的名称有一个斜杠。) 由于在对象名称中存在一些潜在的可变性,因此我需要更改服务器,以便可以像这样构build查询: curl -X GET http://localhost:1337/doi/meta?doiName=09.1010/9347426 我尝试了很多方法,但我总是得到以下回应: [SyntaxError: Unexpected end of input] 这表明我在错误的地方寻找问题。 但是,我可以将服务器代码更改回上述,它工作正常。 我的代码目前看起来像这样: app.get('/doi/meta', function(request, response) { //var path = '/doi/json?doi='+request.params.doiName1+'/'+request.params.doiName2; var args = url.parse(request.url, true).query; var path = 'doi/json?doi='+args['doiName']; console.log('path is '+path); // etc. console.log语句永远不会到达。 […]

Node.js Express – next()callback

在Node.js Express中 – 使用app.use函数 – 为什么我不必这样做: app.use(function(req,res,next){ //do something here next(req,res); }); 通常我只是这样做,它的工作 app.use(function(req,res,next){ //do something here next(); }); ?

传递额外的参数来在Express中路由处理程序

Express对我来说是比较新的,我正在寻找一种使路线更加可重用的方法。 在我的应用程序中,我将有相当多的path可以传递给通用处理程序,但将有不同的模板。 例: app.get('/about', function(req, res) { res.render('about.html'); }); app.get('/', function(req, res) { res.render('home.html'); }); 虽然这个例子是痛苦的,我有30多个这样的路线。 我想能做的是这样的: app.get('/about', generic.render('about.html')); 或者以其他方式将模板名称传递给返回res.render的函数在Express中这是可能的吗? 我所有的尝试解决这个结果variables是未定义的。 我宁愿不要做这样的事情,紧密耦合我的路线参数和模板名称: app.get('/:template', function(req, res) { res.render(req.params.template + '.html'); });

如何使用Express设置和检索BookshelfJS的实例?

我试图使用书架和Express 4.0 ,似乎无法让他们一起工作,或者说,我似乎无法遵循“最佳实践”。 书架文档提到,应始终在整个应用程序中重复使用同一个实例。 它甚至列举了一个例子: // When the app starts var app = express(); var knex = require('knex')(dbConfig); var bookshelf = require('bookshelf')(knex); app.set('bookshelf', bookshelf); // elsewhere, to use the bookshelf client: var bookshelf = app.get('bookshelf'); var Post = bookshelf.Model.extend({ // … }); 不过,当我不得不在独立的文件中使用app.get()时,我似乎无法得到它的工作。 例如,这里是我的app.js文件(我的整个应用程序的根目录): var express = require('express'); var app = express(); var db = […]