好的,所以在Node.js中很容易获得对我的服务器发出请求的主机名:
app.get('/', function(req,res){
console.log(req.headers.host);
});
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法来确定我的实际http服务器的主机名?例如,我的服务器正在该地址运行http://localhost:3000
- 我可以以编程方式确定此地址吗?我正在使用expressjs.
根据带有 Yarn 工作区的 Firebase 函数,我想使用 Yarn 工作区将 monorepo 部署到 Firebase。我可以成功地将“web”方面部署到 Firebase 托管,它引用了一个共享的“核心”工作区。但是,尝试对 Firebase 函数上的“函数”工作区执行相同操作失败。
我正在使用具有以下文件夹结构的 Yarn Workspaces:
packages/
core/ // name: firebase-monorepo-core: custom core package
functions/ // name: firebase-monorepo-functions: firebase functions package
web/ // name: firebase-monorepo-web: react package
Run Code Online (Sandbox Code Playgroud)
这些已在根package.json
文件中配置:
"workspaces": {
"packages": [
"packages/*"
],
"nohoist": [
"**/firebase-monorepo-core"
]
}
Run Code Online (Sandbox Code Playgroud)
在试图使纱线在工作区火力地堡(并因此分享我的core
包)我使用的nohoist
功能来创建符号链接到core
工作区functions
,并web
按照twiz的#1的答案。
该core
包还作为functions
and 中的依赖项存在web
:
"dependencies": {
"firebase-monorepo-core": …
Run Code Online (Sandbox Code Playgroud) 我创建了一个存储库,其中包含一个 React 应用程序(使用 创建create-react-app
)和一个组件目录,其中包含一个简单的 Material UI 按钮。文件夹结构为:
/components
/react-app
Run Code Online (Sandbox Code Playgroud)
这两个目录都设置为使用Yarn 2,并且不在工作区中(因为我试图在单独的目录中模拟项目并简化我的现实场景)。
我构建组件:
$ cd ~/components && yarn build
Run Code Online (Sandbox Code Playgroud)
然后,我用 Yarn 将组件链接到 React 应用程序:
$ cd ~/react-app & yarn link ../components -r -p
Run Code Online (Sandbox Code Playgroud)
package.json
这会导致目录中的文件发生修改react-app
:
{
"name": "react-app",
...
"resolutions": {
"components": "portal:../components"
}
}
Run Code Online (Sandbox Code Playgroud)
我的App.tsx
文件如下所示:
import './App.css';
import { Button } from 'components';
import React from 'react';
function App() {
return (
<Button>Test</Button>
);
}
export default App; …
Run Code Online (Sandbox Code Playgroud) 我正在使用Node.js,Express和Jade,我正在试图找出如何发布,验证和处理表单数据.
在我的jade文件中,我创建了一个联系表单:
div#contact-area
form(method='post',action='')
label(for='name') Name:
input(type='text',name='name',id='name')
label(for='email') Email:
input(type='text',name='email',id='email')
input(type='submit',name='submit',value='Submit').submit-button
Run Code Online (Sandbox Code Playgroud)
然后我使用模块'express-validator'来验证表格如下:
var express = require('express')
,routes = require('./routes')
,http = require('http')
,path = require('path')
,expressValidator = require('express-validator')
;
var app = express.createServer();
app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'jade'); //not needed if we provide explicit file extension on template references e.g. res.render('index.jade');
app.use(express.bodyParser());
app.use(expressValidator);
app.use(express.methodOverride());
app.use(app.router);
});
//display the page for the first time
app.get('/mypage', function(req,res){
res.render('mypage', {
title: 'My Page'
});
});
//handle form submission
app.post('/mypage', function(req,res){ …
Run Code Online (Sandbox Code Playgroud) express ×2
node.js ×2
firebase ×1
http ×1
pug ×1
reactjs ×1
validation ×1
yarnpkg ×1
yarnpkg-v2 ×1