- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我需要上传文件,我在服务器中使用 Node js(版本:[nodemon] v1.0.1)。下面的代码在4个月之前是有效的,之后我没有检查它,昨天我再次运行它。但它不起作用,我得到了"TypeError: Object #<Object> has no method 'existsSync'"
控制台错误。以下是我的代码
var express = require('express');
var path = require('path');
var app = module.exports = express();
var calenderid;
var EventEmitter = require('events').EventEmitter, https = require('https'), http = require('http'), querystring = require('querystring'), url = require('url');
var path2;
app.configure(function() {
app.use(express.compress());
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.cookieParser());
app.use(express.session({
secret : 'foobar'
}));
app.use(express.bodyParser({
uploadDir : __dirname + '/uploads'
}));
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
var http = require('http');
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
port : '3306',
database : 'db',
user : 'root',
password : '',
});
connection.connect();
var fs = require('fs');
app.post('/file-upload/:id', function(req, res) {
var tble = "image";
var id = req.params.id;
console.log("req.files.files" + JSON.stringify(req.files),
req.files.files.length);
var tmp_path = req.files.files[0].path;
console.log("hiii temp path" + tmp_path, typeof tmp_path);
// var firstIdx =0
var lastidx = tmp_path.lastIndexOf("/");
var path = tmp_path.substring(0, lastidx);
console.log("target path sub" + lastidx, tmp_path);
// var target_path = path+"\"+req.files.files[0].name;
var dirExists = fs.existsSync(__dirname + "/uploads/" + id);
console.log(dirExists);
if (!dirExists) {
fs.mkdirSync(__dirname + "/uploads/" + id);
target_path = path + "/" + id + "/" + req.files.files[0].name;
} else {
target_path = path + "/" + id + "/" + req.files.files[0].name;
}
console.log("hiii target_path" + target_path);
fs.rename(tmp_path, target_path, function(err) {
if (err)
throw err;
// delete the temporary file, so that the explicitly set temporary
// upload dir does not get filled with unwanted files
fs.unlink(tmp_path, function() {
if (err)
throw err;
// res.send('File uploaded to: ' + target_path + ' - ' +
// req.files.files[0].size + ' bytes'+req.files.files.length);
// queryurl = 'SELECT * FROM ' +tble + ' WHERE ' + id;
queryurl = 'SELECT * FROM ' + tble + ' WHERE image=' + '"'
+ req.files.files[0].name + '"' + ' AND branch=' + '"' + id
+ '"';
connection.query(queryurl, function(err, result, fields) {
console.log(JSON.stringify(result) + "result.image");
if (result.length == 0) {
console.log("in if !result");
connection.query('INSERT INTO ' + tble + '(' + 'branch'
+ ',' + 'image' + ')' + 'VALUES' + '(' + '"' + id
+ '"' + ',' + '"' + req.files.files[0].name + '"'
+ ")", function(err, result, fields) {
if (err)
throw err;
else {
res.send('File uploaded to: ' + target_path + ' - '
+ req.files.files[0].size + ' bytes'
+ req.files.files.length);
}
});
} else {
console.log("in else !result");
res.send("duplicate");
}
});
});
});
});
以下是我从控制台得到的错误。
TypeError: Object #<Object> has no method 'existsSync'
at /var/www/jts-web/WebContent/app.js:95:20
at callbacks (/var/www/web/WebContent/node_modules/express/lib/router/index.js:165:11)
at param (/var/www/web/WebContent/node_modules/express/lib/router/index.js:139:11)
at param (/var/www/web/WebContent/node_modules/express/lib/router/index.js:136:11)
at pass (/var/www/web/WebContent/node_modules/express/lib/router/index.js:146:5)
at Router._dispatch (/var/www/web/WebContent/node_modules/express/lib/router/index.js:173:5)
at Object.router [as handle] (/var/www/web/WebContent/node_modules/express/lib/router/index.js:33:10)
at next (/var/www/web/WebContent/node_modules/express/node_modules/connect/lib/proto.js:190:15)
at Object.methodOverride [as handle] (/var/www/web/WebContent/node_modules/express/node_modules/connect/lib/middleware/methodOverride.js:37:5)
at next (/var/www/web/WebContent/node_modules/express/node_modules/connect/lib/proto.js:190:15)
在一个站点有人告诉它会在升级 Node js 后克服。但是这段代码运行良好。如果每次更改都需要升级,那就不好了。
最佳答案
我通过添加以下代码解决了这个问题
fs.existsSync = require('path').existsSync;
以上
var dirExists = fs.existsSync(__dirname + "/uploads/" + id);
关于javascript - Node js : TypeError: Object #<Object> has no method 'existsSync' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22005002/
我正在尝试使用 inliner command line tool在本地合并一些文件。但我在控制台中收到以下错误消息。 path.existsSync is now called `fs.exists
我正在尝试使用fs.existsSync检查文件是否存在。输入完整的文件系统路径后,成功返回。当路径包含 ~/foo.bar 或 $HOME/foo.bar 等环境变量时,无法找到该文件。 我已经尝试
在 NodeJS 我有: const fs = require('fs'); if (!fs.existsSync("some_path")) { ... } 但我得到了错误: TypeError:
我正在尝试检查我的 Mocha 测试中是否存在文件。我知道该文件存在于测试文件夹中(为了简单起见,我将其放在那里,同时尝试让它工作)。但无论我做什么,fs.existsSync 总是失败。 Logge
我正在使用 TestCafe 和 Node.JS 编写自动化测试脚本。其中一项测试是下载文件并验证下载是否完成。我不想写硬编码 await t.wait(4000); 因为我的测试是基于数据驱动的框架
将 fs.existsSync 放在 try...catch 中是否具有实用值(value)? 有没有可能会报错?这怎么会发生,会是哪个错误? 我问的原因是因为我试图尽可能避免嵌套 try...cat
我用 Angular 创建了一个新的 Electron 项目。我使用 Angular CLI 构建我的应用程序。现在,我想从 Renderer-Process 到 Main-Process 进行通信,
这就是我现在面临的问题。我有一个名为“assets”的文件夹,在该文件夹中我有一个名为“no_icon.png”的图像。我已将其添加到 pubspec.yaml 中,如下所示: flutter:
我正在使用 Angular 10 , Electron 10.0和 electron-builder v22.8.0 . 启动我的 Electron 应用程序时,我在控制台中收到以下错误: fs.ex
我目前正在使用 Vue 和 Electron并想使用 重新启动应用程序 import { app } from 'electron'; export default { name: 'Home',
我在 Ubuntu 14.04 中运行 Node 时得到这个,'fs.existsSync' 不是一个函数。代码是 var fs = require('fs'); fs.existsSync(bu
我在这条路径上有一个文件:~/Downloads/flightlog_2017-71-19_19747.txt 但是当我尝试写入或检查它是否存在时: fs.existsSync('~/Download
我这里有这段代码: if(fs.existsSync('./example/example.js')){ cb(require('../example/example.js')); }else
我注意到官方 Node 文档对 fs.exists 的描述令人吃惊: "fs.exists() is an anachronism and exists only for historical rea
我正在使用 Electron 和 ReactJS 和 typescript 构建跨平台桌面应用程序。所以有一个像下面这样的功能。该功能正在调用按钮单击,它应该在连接的默认打印机中打印文本。这是处理打印
我正在使用 Electron 和 Angular 4 开发应用程序。我想在单击按钮以选择文件夹时显示一个对话框,但是 Electron API 存在问题: 我见过很多人有同样的问题,但我找不到解决这个
在处理 Node 的文件 I/O 时,我发现这两个函数(fs.exists 和 fs.existsSync)可以检查系统中是否存在文件.它们之间有什么区别? 最佳答案 exists 是非阻塞的,您可以
我需要上传文件,我在服务器中使用 Node js(版本:[nodemon] v1.0.1)。下面的代码在4个月之前是有效的,之后我没有检查它,昨天我再次运行它。但它不起作用,我得到了"TypeErro
我读了很多关于 browserify 和 electron 以及 gui 浏览器的问题但是browserify仍然存在问题,说“fs.existsSync不是一个函数”,“required is no
我遇到了一个问题,我在加载 React 应用程序时遇到了 TypeError: fs.existsSync is not a function 错误。 我正在尝试向我的自定义 MacOS 按钮添加功能
我是一名优秀的程序员,十分优秀!