我只是一个初学者node.js我会尝试用xpress制作一个站点,这样我就可以在那里上传任何东西。我在我的mac上本地设置服务器。
这是我写的代码
server.js
var express = require('express');
var app = express();
var fs = require("fs");
var bodyParser = require('body-parser');
var multers = require('multer');
app.use(express.static('public'));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(multers({ dest: '/public/'}));
app.get('/index.html', function (req, res) {
res.sendFile( __dirname + "/" + "index.html" );
})
app.post('/file_upload', function (req, res) {
console.log(req.files.file.name);
console.log(req.files.file.path);
console.log(req.files.file.type);
var file = __dirname + "/" + req.files.file.name;
fs.readFile( req.files.file.path, function (err, data) {
fs.writeFile(file, data, function (err) {
if( err ){
console.log( err );
}else{
response = {
message:'File uploaded successfully',
filename:req.files.file.name
};
}
console.log( response );
res.end( JSON.stringify( response ) );
});
});
})
var server = app.listen(8081, function () {
var host = server.address().address
var port = server.address().port
console.log("Example app listening at http://%s:%s", host, port)
})
这些是错误信息
节点上载。js公司
/Users/dayatura/Documents/node/node\u modules/express/lib/application。js:209抛出新的TypeError('app.use()需要中间件函数')^
TypeError:应用程序。use()需要EventEmitter上的中间件函数。在对象中使用(/Users/dayatura/Documents/node/node\u modules/express/lib/application.js:209:11)。(/Users/dayatura/Documents/node/upload.js:10:5)
at模块_编译(module.js:570:32)
at对象。模块_扩展。。js(模块js:579:10)
at模块。加载(模块js:487:32)
at try ModuleLoad(module.js:446: 12)
at功能。模块。_load(module.js:438: 3)
在Module.run(module.js:604: 10)
运行时(bootstrap\u node.js:394:7)
启动时(bootstrap\u node.js:149:9)
请任何人帮忙:)
我刚刚研究了以上链接中的multer示例。
js
var express = require('express');
var app = express();
var fs = require("fs");
var multers = require('multer');
var upload = multers({ dest: '/public/'});
app.get('/index.html', function (req, res) {
res.sendFile( __dirname + "/" + "index.html" );
})
app.post('/file_upload', upload.array('avatar'), function (req, res) {
for (var i = 0, len = req.files.length; i < len; i++) {
var mainFile = req.files[i];
var file = __dirname + "/" + mainFile.name;
fs.readFile( mainFile.path, function (err, data) {
fs.writeFile(file, data, function (err) {
if( err ){
console.log( err );
}else{
response = {
message :'File uploaded successfully',
filename: mainFile.name
};
}
console.log( response );
res.end( JSON.stringify( response ) );
});
});
}
})
var server = app.listen(8081, function () {
var host = server.address().address
var port = server.address().port
console.log("Example app listening at http://%s:%s", host, port)
})
根据文档,Multer旨在以以下方式使用:
var express = require('express')
var multer = require('multer')
var upload = multer({ dest: 'uploads/' })
var app = express()
app.post('/profile', upload.single('avatar'), function (req, res, next) {
// req.file is the `avatar` file
// req.body will hold the text fields, if there were any
})
app.post('/photos/upload', upload.array('photos', 12), function (req, res, next) {
// req.files is array of `photos` files
// req.body will contain the text fields, if there were any
})
有关如何使用multer方法的文档:https://github.com/expressjs/multer#usage
这些是问题:
var multer = require('multer')(({ dest: '/public/'}));
那么你可以这样使用它。
app.post('/upload', multer.single('image'), function(req, res,next){
//Handle image content here.
console.log(req.file); //to access file
});
我是新来的。js并尝试运行以下培训示例,以在我的mac(OS X Yosemite 10.10.3)上设置基本http服务器: 我在执行代码时遇到以下错误: $节点http.jsevents.js:85抛出er;//未处理的'错误'事件^错误:在导出时监听EADDRINUSE。_errnoException(util.js:746: 11)在服务器。_listen2(net.js:1156: 14
这是我的Node Express代码, 但我将请求正文作为 {} 但在我的网络选项卡在Chrome我可以看到请求有效负载。请注意选项在此POST调用之前被激发。 请求标头 POST/abchttp/1.1 host:localhost:8112连接: 保持活动内容-长度:11 pragma:no-cache cache-control:no-cache 来源:http://localhost:42
我有: 它记录了: 我不明白为什么会这样。
最近我开始使用node。js。当我在我的一个项目中完成一个需求时,我面临一个问题,我应该能够将一些数据动态写入csv文件,并让它作为弹出窗口提示用户下载(如我们通常看到的,带有保存和取消选项)。在谷歌搜索了一段时间后,我决定使用csv npm模块https://github.com/wdavidw/node-csv-parser.我能够将数据写入文件并使用此模块进行保存。我想提示一个弹出窗口来保存
我将如何在节点中对S3上传进行存根。js? 为了获得洞察力,我使用摩卡进行测试,使用Sinon进行存根,但我愿意改变任何事情。我有一个文件,它导出一个执行上载的函数。看起来是这样的: 如果我尝试存根或AWS。S3。原型,没有任何变化。我假设这是因为我的测试需要本身,并且每个函数都有自己的副本。 我的测试是这样的: 这个测试工作正常,但它不会将上传存根到S3,因此上传实际上要经过:X。
我在node js Express中面临一个问题[因为我是node js的新手]。我的用例是我有三个目录[根目录、路由、html文件]。在根目录中,我有一个包含端口信息的index.js文件,在routes目录中,有一个用于提及API的所有路由的route文件。在html文件中,我有静态html文件+client.js文件。当我转到/api/getlist路由时,我正在发送一个html文件。在该h