我已经使用NextJS和React创建了一个网站。我想以多种语言提供网站。为此,我想在page
文件夹中创建子文件夹,例如英语/en
,德语/de
等。
访问者随后打开我的网站时,将根据公共IP选择正确的子文件夹:
示例:
来自美国的请求:/pages/en
文件夹已选中,
该请求来自德国:/pages/de
文件夹已选中,等等。
我该怎么做?由于我对NodeJS环境的经验很少,因此请向我展示具体示例,非常感谢...
我已经有一个server.js
文件。也许我也可以使用它...
const express = require('express')
const next = require('next')
const bodyParser = require('body-parser')
const request = require('request')
const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
const handle = app.getRequestHandler()
app.prepare()
.then(() => {
const server = express()
//parse application
server.use(bodyParser.urlencoded({ extended: false }))
//parse application/json
server.use(bodyParser.json())
server.post('/', (req, res) => {
addEmailToMailChimp(req.body.email, (error, response, body) => {
// This is the callback function which is passed to `addEmailToMailChimp`
console.log(response);
try {
var respObj = {}; //Initial response object
if (response.statusCode === 200) {
respObj = { success: `Subscribed using ${req.body.email}!`, message: response.body };
} else {
respObj = { error: `Error trying to subscribe ${req.body.email}. Please try again.`, message: response.body };
}
res.send(respObj);
} catch (err) {
var respErrorObj = { error: 'There was an error with your request', message: err.message };
res.send(respErrorObj);
}
});
})
server.get('*', (req, res) => {
return handle(req, res)
})
server.listen(3000, (err) => {
if (err) throw err
console.log('> Ready on http://localhost:3000')
})
})
.catch((ex) => {
console.error(ex.stack)
process.exit(1)
})