![](/img/trans.png)
[英]Where do the files and folders created by a Chrome App reside in file system?
[英]File System to manage local folders and files of users
我有一个通过均值堆栈构建的网站。 我使用文件系统创建文件夹并在服务器中写入文件。 例如,在后端,我有:
router.post('/httpOnly/mkdir', function (req, res, next) {
var fs = require('fs');
var dir = req.body.dir;
fs.mkdir(dir, 0777, function (err) {
if (err) {
if (err.code === "EEXIST") console.log("folder exists")
else return console.log(err)
};
res.json(dir);
});
});
现在,我想在用户的本地磁盘中创建文件夹。 例如,当我在Mac的localhost
启动网站时,我希望它能够在Mac中创建文件夹。 我尝试在前端执行以下代码:
app.config(['$stateProvider', function ($stateProvider) {
$stateProvider
.state('fileSystem', {
url: '/fileSystem',
template: `hallo`,
controller: 'FileSystemCtrl'
})
}])
app.controller('FileSystemCtrl', ['$scope', '$http', function ($scope, $http) {
// var dir = "public/tmp/ABC" // creates well a folder under the folder of the project
var dir = "file:///USers/SoftTimur/theProject/public/tmp/DEF"
$http.post('/httpOnly/mkdir', { dir: dir })
.then(function () {
console.log("done")
})
}])
我希望使用var dir = "file:///USers/SoftTimur/theProject/public/tmp/DEF"
可以在我的Mac中创建一个文件夹,但是失败并出现错误:
{ Error: ENOENT: no such file or directory, mkdir 'file:///USers/SoftTimur/theProject/public/tmp/DEF'
errno: -2,
code: 'ENOENT',
syscall: 'mkdir',
path: 'file:///USers/SoftTimur/theProject/public/tmp/DEF' }
有人这样做吗?
以下代码有效。 发布的json数据是
{“ dir”:“ /用户/ softTimur / theProject / public / tmp / DEF”}
我正在此库中使用带有密码提示符的sudo命令mkdir -p dirname
https://www.npmjs.com/package/sudo
const express = require('express')
const app = express()
const bodyParser = require('body-parser')
var sudo = require('sudo');
var options = {
cachePassword: true,
prompt: 'Password, yo? '
};
app.use(bodyParser.json())
app.post('/', (req, res) => {
var fs = require('fs');
var dir = req.body.dir;
console.log(dir)
var child = sudo([ 'mkdir', '-p', dir ], options);
console.log(child.spawnargs)
// var child = sudo([ 'ls', '-l'], options)
child.stdout.on('data', function (data) {
console.log(data.toString());
res.send(data.toString())
});
})
app.listen(3000, () => console.log('Example app listening on port 3000!'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.