में अंतर मैं नोडजेस के लिए नौसिखिया हूं। मेरे पास route
निर्देशिका के अंदर एक app.js और index.js है। मेरे पास app.use(multer....)
है। मेरे पास app.post('filter-reports')
भी परिभाषित किया गया है जो वास्तव में सर्वर पर फ़ाइल सामग्री अपलोड करता है।app.js और index.js के बीच Node.js
मेरे पास व्यवसाय तर्क है और routes/index.js
फ़ाइल के अंदर मार्ग कॉन्फ़िगर किया गया है जहां मैं /filter-reports
मार्ग को कॉन्फ़िगर करना चाहता हूं। कृपया मुझे यह समझने में सहायता करें कि मैं कहां गलत हूं। मुझे multer
का उपयोग कर फ़ाइल अपलोड करने की आवश्यकता है index.js फ़ाइल में मेरा व्यवसाय तर्क भी चलाएं।
var express = require('express');
var path = require('path');
var favicon = require('static-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var _ = require('underscore');
var cache = require('js-cache');
var multer = require('multer');
var routes = require('./routes/index');
var users = require('./routes/users');
var app = express();
app.all('*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(favicon());
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', routes);
app.use('/users', users);
var done=false;
app.use(multer({ dest: './uploads/',
rename: function (fieldname, filename) {
return filename+Date.now();
},
onFileUploadStart: function (file) {
console.log(file.originalname + ' is starting ...')
},
onFileUploadComplete: function (file) {
console.log(file.fieldname + ' uploaded to ' + file.path)
done=true;
}
}));
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
app.post('filter-reports',function(req,res){
console.log('Working on the filtered reports....');
if(done==true){
console.log(req.files);
res.end("File uploaded.");
}
});
/// error handlers
// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: err
});
});
}
// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: {}
});
});
module.exports = app;
var express = require('express');
var request = require("request");
var _ = require('underscore');
var jscache = require('js-cache');
var schedule = require('node-schedule');
var filename;
index.js फ़ाइल में
var router = express.Router();
router.post('/filter-reports', function(req, res) {
console.log('Came inside the Node js router.. Now.. its all up to me to format the data....');
// console.log(req.files);
// console.log('Came insode the filter-reports app url >>>>');
// if(done==true){
// console.log(req.files);
// console.log('Files uploaded succesfully ....');
//res.end("File uploaded.");
// }
});
मेरे पैकेज संरचना नीचे की तरह है::
app.js bin node_modules package.json public routes views
मेरे package.json
हैस्रोत कोड app.js
{
"name": "nodetest1",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"express": "~4.2.0",
"static-favicon": "~1.0.0",
"morgan": "~1.0.0",
"cookie-parser": "~1.0.1",
"body-parser": "~1.0.0",
"debug": "~0.7.4",
"multer": "~0.1.6",
"jade": "~1.3.0"
}
}
अग्रिम धन्यवाद, प्रदीप
वास्तव में समस्या क्या है? –
अनुरोध संसाधित करने के लिए व्यवसाय तर्क मार्ग अनुक्रमणिका के तहत मेरे index.js में मौजूद है। फ़ाइल अपलोड करने के लिए app.js फ़ाइल में 'multer' है। जब मैं app.js फ़ाइल के अंदर 'app.post' का उपयोग करता हूं तो index.js के अंदर का मार्ग बुलाया नहीं जा रहा है। अगर मैं app.js के अंदर 'app.post' को हटा देता हूं, तो फ़ाइल अपलोड नहीं हो रहा है लेकिन index.js के अंदर का मार्ग काम कर रहा है। मुझे फ़ाइल को अपलोड करने की आवश्यकता है और साथ ही मेरी 'index.js' फ़ाइल के अंदर' पोस्ट 'फ़ंक्शन को कॉल करने की आवश्यकता है। – zilcuanu