世界上最伟大的投资就是投资自己的教育
-
let express = require('express'); let bodyParser = require('body-parser') let fs = require('fs'); let app = express(); var multer = require('multer'); // 创建目录的函数 var createFolder = function (folder) { try { //判断目录是否存在,使用同步,异步不行 //目录不存在会抛出异常 fs.accessSync(folder); } catch (e) { // 抛出异常后创建目录,同步创建 fs.mkdirSync(folder); } }; // 文件目录的字符串(相对路径) var uploadFolder = './upload/'; //调用目录创建函数 ==>目录创建完成 createFolder(uploadFolder); // 创建一个storage对象 //The disk storage engine gives you full control on storing files to disk. // 翻译的意思是:这个硬盘存储引擎可以让你完全掌控把文件存储到硬盘==>意思是:按照你想要的方式存储上传来的文件 var storage = multer.diskStorage({ // 设置存放位置 destination: function (req, file, cb) { cb(null, uploadFolder); }, // 设置文件名称 filename: function (req, file, cb) { cb(null, file.originalname); } }); // 使用storage var upload = multer({ storage: storage }); // parse application/x-www-form-urlencoded app.use(bodyParser.urlencoded({ extended: false })) // parse application/json app.use(bodyParser.json()) app.get('/form', (req, res) => { // 这里的话需要用同步读取文件,异步的话fileData将在响应前得不到内容 let fileData = fs.readFileSync('./pages/form.html', { encoding: 'utf8' }); res.send(fileData); }) // app.post(path, callback [, callback ...])可以放多个回调函数,意思是你可以放一下中间件 //upload.single('logo') ==>single代表单文件上传 和name属性保持一致 <input type="file" name="logo"> //upload.single('avatar') // 单文件上传 //upload.array('photos', 12) //文本上传 //upload.fields([{ name: 'avatar', maxCount: 1 }, { name: 'gallery', maxCount: 8 }])//多文件上传 app.post('/upload', upload.single('logo'), (req, res) => { console.dir(req.file); res.send({ 'ret_code': 0 }); }) app.listen(3000, '127.0.0.1', () => { console.log("started"); })
-
app.get('/form',(req,res)=>{ // 这里的话需要用同步读取文件,异步的话fileData将在响应前得不到内容 let fileData = fs.readFileSync('./pages/form.html',{encoding:'utf8'}); res.send(file); })
-
let fs = require('fs');
//fs.readFile(path[, options], callback) 需要三个参数,这里的第二个参数代表可以省略
// fs.readFile(path, options, callback) 这样使用这个 API 也是对的
// fs.readFile(path, callback) 这样使用这个 API 也是对的// asynchronization 异步 ↓ path | | | 文件名或文件描述符。
let dataOfReadMe = fs.readFile('readMe.txt',
// ↓options |
{
encoding: 'utf8'
},
// ↓callback ==>参数 err ,data < string > | < Buffer >(err, data) => {
fs.writeFile('writeMeAsyn.txt', data, (error) => {
if (error) {
throw error;
}
console.log('The file has been saved!');})
})
-
let events = require('events');
let utils = require('util');// let myEmitter = new events.EventEmitter();
// myEmitter.on('connected',(message)=>{
// console.log(message);
// })
//按监听器的注册顺序,同步地调用每个注册到名为 eventName 事件的监听器,并传入提供的参数。
// myEmitter.emit('connected','你好世界')class Person extends events.EventEmitter {
constructor(name){
super();
this.name = name;
}
}
let lily = new Person('Lily');
let lucy = new Person('Lucy');let peoples = [lily, lucy];
peoples.forEach(people => {
people.on('say',(message)=>{
console.log(message,this);
})
});
lily.emit('say','你好啊,世界');
lucy.emit('say','欢迎,大千世界')
© 汕尾市求知科技有限公司 | Rails365 Gitlab | 知乎 | b 站 | csdn
粤公网安备 44152102000088号 | 粤ICP备19038915号
Top