- Modern JavaScript Applications
- Narayan Prusty
- 449字
- 2021-07-14 11:02:29
Creating the image upload server
We have finished building the services. Now let's build the image storage server. The image storage server defines the routes using which an image can be stored, deleted, or retrieved.
Open the Initial/image-storage
directory. Inside the directory, you will find a package.json
file and an app.js
file. The app.js
file is where you will write the code, and package.json
lists the dependencies for the image storage server. The upload service is dependent on express
, connect-multiparty
, path
, and fs
. Run the npm install
command inside Initial/image-storage
to install the dependencies locally.
The following is the code to import the modules:
var express = require("express"); var app = express(); var fs = require("fs"); var multipart = require("connect-multiparty")();
Now let's define the route using which the upload service can store images in the image storage server. The upload service makes the POST request to the /store
URL path to store the image. Here is the code to define the route:
app.post("/store", multipart, function(httpRequest, httpResponse, next){ var tmp_path = httpRequest.files.thumbnail.path; var target_path = "public/images/" + httpRequest.body.name; fs.rename(tmp_path, target_path, function(err) { if(err) return httpResponse.status(500).send("An error occured"); httpResponse.send("Done"); }); });
Here, at first, we are adding the callback provided by the connect-multiparty module, which parses the multipart/form-data
content type body and also moves the files to a temporary location.
Then, we are moving the file from temporary directory to another directory. The directory we are moving the file to is public/images/
. We are moving the file using the rename
method of the filesystem module. Finally, we are sending a Done
string as the body of HTTP response to tell the upload service that the file is stored successfully.
Now let's define the route using which the upload service can delete an image stored in the image storage server. The upload service makes the GET request to the /delete/:id
URL path, where the id
parameter indicates the image name. The following is the code to define the route:
app.get("/delete/:id", function(httpRequest, httpResponse, next){ fs.unlink("public/images/" + httpRequest.params.id, function(err) { if(err) return httpResponse.status(500).send("An error occured"); httpResponse.send("Done"); }); });
Here we are deleting the image file using the unlink
method of the fs
module.
Finally, we need to serve images to the browser. Looking for static file in the public/images/
directory can do this. The following is the code to do this:
app.use(express.static(__dirname + "/public/images"));
Here we are using the static middleware that looks for static files in the directory provided by arguments and serves directly to the browser.
Now we have defined our routes. Finally, we need to start the Express server. Here is the code to do so:
app.listen(9090);
Now go ahead and run the image storage server using the node app.js
command.
- Puppet 4 Essentials(Second Edition)
- Mobile Web Performance Optimization
- Flink SQL與DataStream入門、進階與實戰
- JavaScript Unlocked
- 算法精粹:經典計算機科學問題的Python實現
- 用戶體驗增長:數字化·智能化·綠色化
- 可解釋機器學習:模型、方法與實踐
- Gradle for Android
- D3.js 4.x Data Visualization(Third Edition)
- Unity Game Development Scripting
- HTML5從入門到精通 (第2版)
- Express Web Application Development
- 單片機C語言程序設計實訓100例
- Python圖形化編程(微課版)
- 21天學通C++(第5版)